Skip to content

New Crowdin updates#1965

Open
elibosley wants to merge 50 commits intomainfrom
l10n_main
Open

New Crowdin updates#1965
elibosley wants to merge 50 commits intomainfrom
l10n_main

Conversation

@elibosley
Copy link
Copy Markdown
Member

@elibosley elibosley commented Mar 26, 2026

Summary by CodeRabbit

  • New Features

    • Onboarding now surfaces pool-mode options (dedicated vs. hybrid) and related warnings/validation in the UI, plus explicit messaging when selected drives already contain internal-boot partitions.
    • Added shutdown and internal-boot failure/BIOS guidance messages in the next-steps flow.
  • Documentation

    • Updated localization strings and reboot/shutdown wording across languages; clarified “no changes” summary messaging when no config updates are needed.

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai bot commented Mar 26, 2026

Walkthrough

Adds and updates i18n strings across many locale JSON files to support onboarding internal-boot UX (drive warnings, pool-mode options, eligibility code) and to revise reboot/shutdown and "no changes" summary messaging.

Changes

Cohort / File(s) Summary
Localization files (many locales)
web/src/locales/ar.json, web/src/locales/bn.json, web/src/locales/ca.json, web/src/locales/cs.json, web/src/locales/da.json, web/src/locales/de.json, web/src/locales/es.json, web/src/locales/fr.json, web/src/locales/hi.json, web/src/locales/hr.json, web/src/locales/hu.json, web/src/locales/it.json, web/src/locales/ja.json, web/src/locales/ko.json, web/src/locales/lv.json, web/src/locales/nl.json, web/src/locales/no.json, web/src/locales/pl.json, web/src/locales/pt.json, web/src/locales/ro.json, web/src/locales/ru.json, web/src/locales/sv.json, web/src/locales/uk.json, web/src/locales/zh.json
Added many onboarding.nextSteps.*, onboarding.internalBootStep.*, and onboarding.summaryStep.* keys (drive warning title/description, pool settings/devices, poolMode dedicated/hybrid, validation/eligibility code HAS_INTERNAL_BOOT_PARTITIONS, summary no-changes title/message). Updated existing keys in most files: onboarding.nextSteps.confirmReboot.warning, onboarding.internalBootStep.warning.bootablePoolVolumes, and onboarding.summaryStep.logs.noChanges. Lines roughly: +27/-3 per file. Review attention: new pool-mode keys, dedicated-mode validation key, and revised reboot/shutdown wording.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related PRs

  • New Crowdin updates #1922 — touches the same onboarding.internalBootStep namespace (adds state refresh actions) and may interact with new i18n keys introduced here.

Poem

🐰
I hopped through strings in every tongue,
Saved a warning, added a rung,
Pools and drives now have their say,
"Don't pull the flash" till Unraid's all way,
Translations snug — a carrot for today! 🥕

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title "New Crowdin updates" accurately describes the main change: localization updates across 20+ language files via the Crowdin translation platform.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch l10n_main

Comment @coderabbitai help to get the list of available commands and usage tips.

@codecov
Copy link
Copy Markdown

codecov bot commented Mar 26, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 52.12%. Comparing base (c30a0c0) to head (0aff4df).
⚠️ Report is 4 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #1965      +/-   ##
==========================================
+ Coverage   51.94%   52.12%   +0.18%     
==========================================
  Files        1030     1031       +1     
  Lines       71137    71589     +452     
  Branches     7934     8104     +170     
==========================================
+ Hits        36949    37313     +364     
- Misses      34065    34151      +86     
- Partials      123      125       +2     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@web/src/locales/es.json`:
- Line 205: The Spanish translation key
"onboarding.internalBootStep.eligibility.codes.HAS_INTERNAL_BOOT_PARTITIONS" is
dead — it’s not present in the English locale nor referenced in the types or
logic; either remove this key from all locale files or add and use a
corresponding eligibility code: update the InternalBootDiskEligibilityCode or
InternalBootSystemEligibilityCode type in OnboardingInternalBootStep.vue to
include HAS_INTERNAL_BOOT_PARTITIONS and implement the business logic that
sets/returns this code where disk/system eligibility is computed (so the UI can
reference the key), and ensure the English locale gets the same translation
entry.

In `@web/src/locales/lv.json`:
- Around line 170-171: The English base locale is missing several onboarding
keys introduced in lv.json; add the following keys to web/src/locales/en.json
with appropriate English strings:
onboarding.internalBootStep.warning.driveWarningsTitle,
onboarding.internalBootStep.warning.driveWarningsDescription,
onboarding.internalBootStep.eligibility.codes.HAS_INTERNAL_BOOT_PARTITIONS,
onboarding.summaryStep.result.noChangesTitle, and
onboarding.summaryStep.result.noChangesMessage (use clear English equivalents of
the Latvian texts), place them under the corresponding onboarding namespace so
they mirror the structure in lv.json, and run the localization/CI checks to
ensure no missing-key fallbacks remain.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: 67ec1a03-f4ac-4b9c-bb4f-5aecffebe365

📥 Commits

Reviewing files that changed from the base of the PR and between afe1ae6 and 0deda1f.

📒 Files selected for processing (24)
  • web/src/locales/ar.json
  • web/src/locales/bn.json
  • web/src/locales/ca.json
  • web/src/locales/cs.json
  • web/src/locales/da.json
  • web/src/locales/de.json
  • web/src/locales/es.json
  • web/src/locales/fr.json
  • web/src/locales/hi.json
  • web/src/locales/hr.json
  • web/src/locales/hu.json
  • web/src/locales/it.json
  • web/src/locales/ja.json
  • web/src/locales/ko.json
  • web/src/locales/lv.json
  • web/src/locales/nl.json
  • web/src/locales/no.json
  • web/src/locales/pl.json
  • web/src/locales/pt.json
  • web/src/locales/ro.json
  • web/src/locales/ru.json
  • web/src/locales/sv.json
  • web/src/locales/uk.json
  • web/src/locales/zh.json

"onboarding.internalBootStep.eligibility.codes.ASSIGNED_TO_CACHE": "Este disco ya está asignado a una ranura de grupo o caché.",
"onboarding.internalBootStep.eligibility.codes.USB_TRANSPORT": "Este disco está conectado por USB, lo cual no está permitido para el arranque interno.",
"onboarding.internalBootStep.eligibility.codes.TOO_SMALL": "Este disco es demasiado pequeño para el tamaño mínimo de reserva de arranque.",
"onboarding.internalBootStep.eligibility.codes.HAS_INTERNAL_BOOT_PARTITIONS": "Este disco ya contiene particiones de arranque internas.",
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Search for HAS_INTERNAL_BOOT_PARTITIONS usage in the codebase
echo "=== Searching for HAS_INTERNAL_BOOT_PARTITIONS in TypeScript/Vue files ==="
rg -n "HAS_INTERNAL_BOOT_PARTITIONS" --type ts --type vue -C 3

echo ""
echo "=== Checking eligibility code type definitions ==="
rg -n "InternalBootDiskEligibilityCode|InternalBootSystemEligibilityCode" --type ts --type vue -A 10

Repository: unraid/api

Length of output: 253


🏁 Script executed:

#!/bin/bash

# Search for HAS_INTERNAL_BOOT_PARTITIONS in all files
echo "=== Searching for HAS_INTERNAL_BOOT_PARTITIONS in all files ==="
rg -n "HAS_INTERNAL_BOOT_PARTITIONS" -C 3

echo ""
echo "=== Searching for InternalBootDiskEligibilityCode type definition ==="
rg -n "InternalBootDiskEligibilityCode" -A 5

echo ""
echo "=== Searching for InternalBootSystemEligibilityCode type definition ==="
rg -n "InternalBootSystemEligibilityCode" -A 5

echo ""
echo "=== Finding OnboardingInternalBootStep related files ==="
find . -name "*OnboardingInternalBootStep*" -o -name "*InternalBoot*" | head -20

Repository: unraid/api

Length of output: 33179


🏁 Script executed:

#!/bin/bash

echo "=== Searching all files for HAS_INTERNAL_BOOT_PARTITIONS ==="
rg -n "HAS_INTERNAL_BOOT_PARTITIONS" 

echo ""
echo "=== Looking for other disk eligibility codes referenced in Vue file ==="
rg -n "ASSIGNED_TO_CACHE|USB_TRANSPORT" web/src/components/Onboarding/steps/OnboardingInternalBootStep.vue

echo ""
echo "=== Checking test files for eligibility codes ==="
rg -n "InternalBootDisk|eligibilityCodes|ineligibility" web/__test__/components/Onboarding/OnboardingInternalBootStep.test.ts | head -30

echo ""
echo "=== Looking for where ineligibilityCodes are populated ==="
rg -n "ineligibilityCodes\.push" web/src/components/Onboarding/steps/OnboardingInternalBootStep.vue -A 2 -B 2

Repository: unraid/api

Length of output: 4459


🏁 Script executed:

#!/bin/bash

echo "=== Checking which eligibility codes are in translations but not in the Vue type definitions ==="
rg -o 'onboarding\.internalBootStep\.eligibility\.codes\.\K[A-Z_]+' web/src/locales/en.json | sort -u

echo ""
echo "=== Checking all type definitions and mappings in OnboardingInternalBootStep.vue ==="
sed -n '65,90p' web/src/components/Onboarding/steps/OnboardingInternalBootStep.vue

echo ""
echo "=== Checking if ASSIGNED_TO_CACHE or USB_TRANSPORT are used anywhere ==="
rg -n "ASSIGNED_TO_CACHE|USB_TRANSPORT" web/src/components/Onboarding/steps/OnboardingInternalBootStep.vue

Repository: unraid/api

Length of output: 1833


🏁 Script executed:

#!/bin/bash

echo "=== All eligibility codes in English translation ==="
sed -n '200,215p' web/src/locales/en.json

echo ""
echo "=== All codes defined in type definitions ==="
echo "System codes:"
rg -o "'[A-Z_]+'" web/src/components/Onboarding/steps/OnboardingInternalBootStep.vue | grep -A 10 "ALREADY_INTERNAL_BOOT" | head -10

echo ""
echo "=== Check if any of these codes appear in the actual code logic ==="
rg -n "ASSIGNED_TO_CACHE|USB_TRANSPORT|HAS_INTERNAL_BOOT_PARTITIONS" web/src/components/Onboarding/steps/OnboardingInternalBootStep.vue

Repository: unraid/api

Length of output: 2294


🏁 Script executed:

#!/bin/bash

echo "=== Complete eligibility codes section in English locale ==="
rg -n "onboarding.internalBootStep.eligibility.codes" web/src/locales/en.json

echo ""
echo "=== Count all eligibility code entries ==="
rg -c "onboarding.internalBootStep.eligibility.codes" web/src/locales/en.json web/src/locales/es.json

Repository: unraid/api

Length of output: 1974


🏁 Script executed:

#!/bin/bash

echo "=== Checking if HAS_INTERNAL_BOOT_PARTITIONS exists in en.json ==="
rg -n "HAS_INTERNAL_BOOT_PARTITIONS" web/src/locales/en.json

echo ""
echo "=== Show es.json lines 200-210 to see the full context ==="
sed -n '200,210p' web/src/locales/es.json

echo ""
echo "=== Show en.json lines 200-210 for comparison ==="
sed -n '200,210p' web/src/locales/en.json

Repository: unraid/api

Length of output: 3160


Remove unused translation key HAS_INTERNAL_BOOT_PARTITIONS or implement its corresponding eligibility code.

The translation key for HAS_INTERNAL_BOOT_PARTITIONS exists in Spanish and many other locales but is not present in the English locale and is not referenced in any type definitions. It does not exist in InternalBootDiskEligibilityCode or InternalBootSystemEligibilityCode types in OnboardingInternalBootStep.vue, making this translation dead code. Either remove the key from all locale files or add the code to the type definitions and implement its logic.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@web/src/locales/es.json` at line 205, The Spanish translation key
"onboarding.internalBootStep.eligibility.codes.HAS_INTERNAL_BOOT_PARTITIONS" is
dead — it’s not present in the English locale nor referenced in the types or
logic; either remove this key from all locale files or add and use a
corresponding eligibility code: update the InternalBootDiskEligibilityCode or
InternalBootSystemEligibilityCode type in OnboardingInternalBootStep.vue to
include HAS_INTERNAL_BOOT_PARTITIONS and implement the business logic that
sets/returns this code where disk/system eligibility is computed (so the UI can
reference the key), and ensure the English locale gets the same translation
entry.

Comment on lines +170 to +171
"onboarding.internalBootStep.warning.driveWarningsTitle": "Brīdinājumi par atlasītajiem diskiem",
"onboarding.internalBootStep.warning.driveWarningsDescription": "Šie atlasītie diski jau satur iekšējās sāknēšanas nodalījumus. Turpinot, tie tiks pārkonfigurēti.",
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

EN_FILE="$(fd -p 'en.json' | rg 'web/src/locales/en\.json$' | head -n1)"
if [[ -z "${EN_FILE}" ]]; then
  echo "Could not locate web/src/locales/en.json"
  exit 2
fi
export EN_FILE

python - <<'PY'
import json
import os
import sys

en_file = os.environ["EN_FILE"]
required_keys = [
  "onboarding.internalBootStep.warning.driveWarningsTitle",
  "onboarding.internalBootStep.warning.driveWarningsDescription",
  "onboarding.internalBootStep.eligibility.codes.HAS_INTERNAL_BOOT_PARTITIONS",
  "onboarding.summaryStep.result.noChangesTitle",
  "onboarding.summaryStep.result.noChangesMessage",
]

with open(en_file, "r", encoding="utf-8") as f:
    data = json.load(f)

missing = [k for k in required_keys if k not in data]
print(f"Checked: {en_file}")
print("Missing keys:")
for k in missing:
    print(f"- {k}")

sys.exit(1 if missing else 0)
PY

Repository: unraid/api

Length of output: 393


Add the new onboarding keys to the base locale (en.json).

The following keys added at lines 170–171, 205, and 321–322 in the Latvian locale are missing from web/src/locales/en.json:

  • onboarding.internalBootStep.warning.driveWarningsTitle
  • onboarding.internalBootStep.warning.driveWarningsDescription
  • onboarding.internalBootStep.eligibility.codes.HAS_INTERNAL_BOOT_PARTITIONS
  • onboarding.summaryStep.result.noChangesTitle
  • onboarding.summaryStep.result.noChangesMessage

Without these keys in the base locale, users on the English interface will encounter fallback key rendering in the new onboarding paths.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@web/src/locales/lv.json` around lines 170 - 171, The English base locale is
missing several onboarding keys introduced in lv.json; add the following keys to
web/src/locales/en.json with appropriate English strings:
onboarding.internalBootStep.warning.driveWarningsTitle,
onboarding.internalBootStep.warning.driveWarningsDescription,
onboarding.internalBootStep.eligibility.codes.HAS_INTERNAL_BOOT_PARTITIONS,
onboarding.summaryStep.result.noChangesTitle, and
onboarding.summaryStep.result.noChangesMessage (use clear English equivalents of
the Latvian texts), place them under the corresponding onboarding namespace so
they mirror the structure in lv.json, and run the localization/CI checks to
ensure no missing-key fallbacks remain.

@github-actions
Copy link
Copy Markdown
Contributor

This plugin has been deployed to Cloudflare R2 and is available for testing.
Download it at this URL:

https://preview.dl.unraid.net/unraid-api/tag/PR1965/dynamix.unraid.net.plg

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 5

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@web/src/locales/bn.json`:
- Line 221: The translation key
"onboarding.internalBootStep.eligibility.codes.HAS_INTERNAL_BOOT_PARTITIONS" in
bn.json is unreachable; either remove this key from the locale file or add a
corresponding eligibility code and mapping: add the enum/union value to
InternalBootSystemEligibilityCode or InternalBootDiskEligibilityCode (whichever
scope is appropriate) and then add an entry mapping that code to the translation
in SYSTEM_ELIGIBILITY_MESSAGE_KEYS or DISK_ELIGIBILITY_MESSAGE_KEYS respectively
so the key is reachable at runtime. Ensure the identifier you add exactly
matches the translation key suffix (HAS_INTERNAL_BOOT_PARTITIONS) and update
tests/type declarations if necessary.

In `@web/src/locales/cs.json`:
- Line 185: The Czech string for the key
"onboarding.internalBootStep.warning.dedicatedMirrorSize" contains a malformed
phrase "Ve 2zařízeníovém zrcadle"; update that value to a natural Czech wording
such as "Ve 2-zařízeníovém zrcadle" or better "Ve zrcadle se 2 zařízeními" (or
another equivalent natural phrase) so the message reads correctly; locate the
JSON entry for onboarding.internalBootStep.warning.dedicatedMirrorSize and
replace the value with the chosen corrected string.

In `@web/src/locales/fr.json`:
- Around line 340-341: The French string for the key
onboarding.summaryStep.result.noChangesMessage uses "l'onboarding" (English) and
should be replaced with the consistent French term "l'intégration"; update the
value of onboarding.summaryStep.result.noChangesMessage to use "l'intégration"
so the UI language matches other keys (see onboarding.summaryStep.title/other
messages referencing intégration) and keep punctuation/grammar intact.

In `@web/src/locales/pl.json`:
- Around line 340-341: The translation for the key
onboarding.summaryStep.result.noChangesMessage mistakenly uses "aktualizacji
wdrożenia" (deployment updates) which changes the meaning; update the string
value for onboarding.summaryStep.result.noChangesMessage to reference
onboarding/setup rather than deployment (e.g., use wording like "Nie było
żadnych wymagań ani zmian w trakcie konfiguracji, więc nic nie zostało
zmienione." or similar) so the message matches the onboarding flow and not a
deployment pipeline.
- Around line 122-124: Add the missing English entries to the canonical locale
file by backfilling any keys introduced in pl.json into web/src/locales/en.json
so they render correctly; specifically add translations for
onboarding.nextSteps.confirmShutdown.title,
onboarding.nextSteps.internalBootFailed,
onboarding.nextSteps.internalBootBiosMissed, the new pool-mode labels,
onboarding.internalBootStep.validation.dedicatedPoolNameConflict,
onboarding.internalBootStep.eligibility.codes.HAS_INTERNAL_BOOT_PARTITIONS, and
the new no-changes result strings (and the other missing paths noted at lines
174-188, 221, 255-257, 340-341) using clear English copy matching the intent of
the Polish strings; ensure key names match exactly and keep en.json formatted
consistently with existing entries.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: 04acb478-afff-462b-8a59-7eeef47e5fd7

📥 Commits

Reviewing files that changed from the base of the PR and between 0deda1f and 0aff4df.

📒 Files selected for processing (24)
  • web/src/locales/ar.json
  • web/src/locales/bn.json
  • web/src/locales/ca.json
  • web/src/locales/cs.json
  • web/src/locales/da.json
  • web/src/locales/de.json
  • web/src/locales/es.json
  • web/src/locales/fr.json
  • web/src/locales/hi.json
  • web/src/locales/hr.json
  • web/src/locales/hu.json
  • web/src/locales/it.json
  • web/src/locales/ja.json
  • web/src/locales/ko.json
  • web/src/locales/lv.json
  • web/src/locales/nl.json
  • web/src/locales/no.json
  • web/src/locales/pl.json
  • web/src/locales/pt.json
  • web/src/locales/ro.json
  • web/src/locales/ru.json
  • web/src/locales/sv.json
  • web/src/locales/uk.json
  • web/src/locales/zh.json
✅ Files skipped from review due to trivial changes (1)
  • web/src/locales/uk.json
🚧 Files skipped from review as they are similar to previous changes (15)
  • web/src/locales/ca.json
  • web/src/locales/ro.json
  • web/src/locales/zh.json
  • web/src/locales/da.json
  • web/src/locales/ko.json
  • web/src/locales/sv.json
  • web/src/locales/ja.json
  • web/src/locales/it.json
  • web/src/locales/pt.json
  • web/src/locales/ru.json
  • web/src/locales/no.json
  • web/src/locales/hi.json
  • web/src/locales/ar.json
  • web/src/locales/es.json
  • web/src/locales/hu.json

"onboarding.internalBootStep.eligibility.codes.ASSIGNED_TO_CACHE": "এই ডিস্কটি ইতিমধ্যে একটি পুল বা ক্যাশ স্লটে বরাদ্দ করা হয়েছে।",
"onboarding.internalBootStep.eligibility.codes.USB_TRANSPORT": "এই ডিস্কটি USB এর মাধ্যমে সংযুক্ত হয়েছে, যা অভ্যন্তরীণ বুটের জন্য অনুমোদিত নয়।",
"onboarding.internalBootStep.eligibility.codes.TOO_SMALL": "এই ডিস্কটি ন্যূনতম বুট রিজার্ভেশনের আকারের জন্য খুব ছোট।",
"onboarding.internalBootStep.eligibility.codes.HAS_INTERNAL_BOOT_PARTITIONS": "এই ডিস্কে ইতিমধ্যেই অভ্যন্তরীণ বুট পার্টিশন রয়েছে।",
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Verify eligibility code unions and message-key maps include HAS_INTERNAL_BOOT_PARTITIONS.
rg -n -C3 'InternalBootSystemEligibilityCode|InternalBootDiskEligibilityCode|SYSTEM_ELIGIBILITY_MESSAGE_KEYS|DISK_ELIGIBILITY_MESSAGE_KEYS|HAS_INTERNAL_BOOT_PARTITIONS' web/src/components/Onboarding/steps/OnboardingInternalBootStep.vue

Repository: unraid/api

Length of output: 3149


Remove the unmapped translation key or add the eligibility code binding.

The key onboarding.internalBootStep.eligibility.codes.HAS_INTERNAL_BOOT_PARTITIONS at line 221 in web/src/locales/bn.json has no corresponding eligibility code in InternalBootSystemEligibilityCode or InternalBootDiskEligibilityCode unions, and is not mapped in SYSTEM_ELIGIBILITY_MESSAGE_KEYS or DISK_ELIGIBILITY_MESSAGE_KEYS. This translation key will be unreachable at runtime.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@web/src/locales/bn.json` at line 221, The translation key
"onboarding.internalBootStep.eligibility.codes.HAS_INTERNAL_BOOT_PARTITIONS" in
bn.json is unreachable; either remove this key from the locale file or add a
corresponding eligibility code and mapping: add the enum/union value to
InternalBootSystemEligibilityCode or InternalBootDiskEligibilityCode (whichever
scope is appropriate) and then add an entry mapping that code to the translation
in SYSTEM_ELIGIBILITY_MESSAGE_KEYS or DISK_ELIGIBILITY_MESSAGE_KEYS respectively
so the key is reachable at runtime. Ensure the identifier you add exactly
matches the translation key suffix (HAS_INTERNAL_BOOT_PARTITIONS) and update
tests/type declarations if necessary.

"onboarding.internalBootStep.poolMode.hybrid": "Spouštěcí + datový fond",
"onboarding.internalBootStep.warning.dedicatedModeTitle": "Vyhrazený spouštěcí fond",
"onboarding.internalBootStep.warning.dedicatedPoolDescription": "Celé zařízení bude použito výhradně ke spouštění Unraid. Na tomto zařízení nebude vytvořen žádný další fond úložiště.",
"onboarding.internalBootStep.warning.dedicatedMirrorSize": "Ve 2zařízeníovém zrcadle je velikost spouštěcího oddílu určena nejmenším vybraným zařízením.",
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Fix malformed Czech wording in the dedicated-mirror size message.

Line 185 contains Ve 2zařízeníovém zrcadle, which reads broken. Use a properly formed phrase (e.g., Ve 2-zařízeníovém zrcadle or equivalent natural wording).

✏️ Proposed text fix
-  "onboarding.internalBootStep.warning.dedicatedMirrorSize": "Ve 2zařízeníovém zrcadle je velikost spouštěcího oddílu určena nejmenším vybraným zařízením.",
+  "onboarding.internalBootStep.warning.dedicatedMirrorSize": "Ve 2-zařízeníovém zrcadle je velikost spouštěcího oddílu určena nejmenším vybraným zařízením.",
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
"onboarding.internalBootStep.warning.dedicatedMirrorSize": "Ve 2zařízeníovém zrcadle je velikost spouštěcího oddílu určena nejmenším vybraným zařízením.",
"onboarding.internalBootStep.warning.dedicatedMirrorSize": "Ve 2-zařízeníovém zrcadle je velikost spouštěcího oddílu určena nejmenším vybraným zařízením.",
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@web/src/locales/cs.json` at line 185, The Czech string for the key
"onboarding.internalBootStep.warning.dedicatedMirrorSize" contains a malformed
phrase "Ve 2zařízeníovém zrcadle"; update that value to a natural Czech wording
such as "Ve 2-zařízeníovém zrcadle" or better "Ve zrcadle se 2 zařízeními" (or
another equivalent natural phrase) so the message reads correctly; locate the
JSON entry for onboarding.internalBootStep.warning.dedicatedMirrorSize and
replace the value with the chosen corrected string.

Comment on lines +340 to +341
"onboarding.summaryStep.result.noChangesTitle": "Aucune mise à jour nécessaire",
"onboarding.summaryStep.result.noChangesMessage": "Aucune mise à jour de l'onboarding n'était à appliquer, donc rien n'a été modifié.",
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Keep the French term consistent here.

l'onboarding introduces raw English into a flow that this file otherwise calls intégration (see Lines 131 and 328-329). This banner will read as mixed-language UI unless it reuses the same term.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@web/src/locales/fr.json` around lines 340 - 341, The French string for the
key onboarding.summaryStep.result.noChangesMessage uses "l'onboarding" (English)
and should be replaced with the consistent French term "l'intégration"; update
the value of onboarding.summaryStep.result.noChangesMessage to use
"l'intégration" so the UI language matches other keys (see
onboarding.summaryStep.title/other messages referencing intégration) and keep
punctuation/grammar intact.

Comment on lines +122 to +124
"onboarding.nextSteps.confirmShutdown.title": "Potwierdź wyłączenie",
"onboarding.nextSteps.internalBootFailed": "Przekroczono limit czasu uruchamiania wewnętrznego, ale konfiguracja najprawdopodobniej została wykonana na serwerze. Uruchom ponownie system, aby dokończyć konfigurację.",
"onboarding.nextSteps.internalBootBiosMissed": "Aktualizacja kolejności rozruchu BIOS nie mogła zostać zastosowana automatycznie. Po ponownym uruchomieniu może być konieczne ręczne zaktualizowanie kolejności rozruchu BIOS, aby nadać priorytet dyskowi pamięci masowej.",
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

Backfill these keys in web/src/locales/en.json.

The English reference locale is still missing 13 of the keys added here, including onboarding.nextSteps.confirmShutdown.title, onboarding.nextSteps.internalBootBiosMissed, the new pool-mode labels, onboarding.internalBootStep.validation.dedicatedPoolNameConflict, onboarding.internalBootStep.eligibility.codes.HAS_INTERNAL_BOOT_PARTITIONS, and the new no-changes result strings. With web/src/locales/en.json as the canonical locale, these paths will render as raw i18n keys instead of UI copy until the same keys exist there too.

Also applies to: 174-188, 221-221, 255-257, 340-341

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@web/src/locales/pl.json` around lines 122 - 124, Add the missing English
entries to the canonical locale file by backfilling any keys introduced in
pl.json into web/src/locales/en.json so they render correctly; specifically add
translations for onboarding.nextSteps.confirmShutdown.title,
onboarding.nextSteps.internalBootFailed,
onboarding.nextSteps.internalBootBiosMissed, the new pool-mode labels,
onboarding.internalBootStep.validation.dedicatedPoolNameConflict,
onboarding.internalBootStep.eligibility.codes.HAS_INTERNAL_BOOT_PARTITIONS, and
the new no-changes result strings (and the other missing paths noted at lines
174-188, 221, 255-257, 340-341) using clear English copy matching the intent of
the Polish strings; ensure key names match exactly and keep en.json formatted
consistently with existing entries.

Comment on lines +340 to +341
"onboarding.summaryStep.result.noChangesTitle": "Brak wymaganych aktualizacji",
"onboarding.summaryStep.result.noChangesMessage": "Nie było żadnych aktualizacji wdrożenia do zastosowania, więc nic nie zostało zmienione.",
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

This message now reads like “deployment updates,” not onboarding/setup.

aktualizacji wdrożenia changes the meaning of the banner and will sound like a deployment pipeline message rather than the onboarding flow this screen is describing.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@web/src/locales/pl.json` around lines 340 - 341, The translation for the key
onboarding.summaryStep.result.noChangesMessage mistakenly uses "aktualizacji
wdrożenia" (deployment updates) which changes the meaning; update the string
value for onboarding.summaryStep.result.noChangesMessage to reference
onboarding/setup rather than deployment (e.g., use wording like "Nie było
żadnych wymagań ani zmian w trakcie konfiguracji, więc nic nie zostało
zmienione." or similar) so the message matches the onboarding flow and not a
deployment pipeline.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant