Skip to content

New Crowdin updates#1883

Open
elibosley wants to merge 24 commits intomainfrom
l10n_main
Open

New Crowdin updates#1883
elibosley wants to merge 24 commits intomainfrom
l10n_main

Conversation

@elibosley
Copy link
Member

@elibosley elibosley commented Mar 3, 2026

Summary by CodeRabbit

  • Localization Updates
    • Updated text across all 23 supported languages to modernize terminology from USB Flash-specific to boot device-centric phrasing.
    • Added support for distinct boot device type classifications (Flash, Internal Boot, Internal Boot Multi, TPM).
    • Refined license transfer workflow with improved device-oriented language.
    • Enhanced error messages and registration guidance for improved clarity in boot device management scenarios.

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Mar 3, 2026

Walkthrough

Translation files across 24 languages are updated to replace USB flash-specific terminology with boot device terminology. Registration keys are restructured to add boot device type variants and device GUID support, while license transfer naming is updated. Server state messages shift from flash-centric to device-centric phrasing.

Changes

Cohort / File(s) Summary
Locale Files (24 languages)
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/ru.json, web/src/locales/sv.json, web/src/locales/uk.json, web/src/locales/zh.json
Removed legacy flash-specific registration keys (registration.arrayStatus, registration.flashDrive, registration.flashGuid). Added boot device family keys (registration.bootDevice, registration.bootDeviceType with nested types: flash, internalBoot, internalBootMulti, tpm, plus registration.deviceGuid). Renamed registration.transferLicenseToNewFlash to registration.transferLicenseToNewDevice. Updated dozens of server.state.* entries to replace USB flash terminology with boot device terminology across blacklist, GUID, keyfile, trial, and connection error messages.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~8 minutes

Poem

🐰 Hops of joy for locales new,
Boot devices in every tongue, it's true!
From flash drives old to boot devices bright,
Twenty-four languages shine in the light!

🚥 Pre-merge checks | ✅ 2 | ❌ 1

❌ Failed checks (1 inconclusive)

Check name Status Explanation Resolution
Title check ❓ Inconclusive The title "New Crowdin updates" is vague and generic, failing to describe the specific nature of the changes in the changeset. Provide a more descriptive title that captures the main change, such as "Replace USB Flash terminology with boot device terminology across localization files" or "Update locale keys for boot device support."
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
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
  • Post copyable unit tests in a comment
  • Commit unit tests in branch l10n_main

Tip

Try Coding Plans. Let us write the prompt for your AI agent so you can ship faster (with fewer bugs).
Share your feedback on Discord.


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

@codecov
Copy link

codecov bot commented Mar 3, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 48.08%. Comparing base (db88eb8) to head (ee9e33e).

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #1883      +/-   ##
==========================================
- Coverage   48.08%   48.08%   -0.01%     
==========================================
  Files        1002     1002              
  Lines       66502    66502              
  Branches     6675     6670       -5     
==========================================
- Hits        31978    31976       -2     
- Misses      34403    34405       +2     
  Partials      121      121              

☔ 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.

@github-actions
Copy link
Contributor

github-actions bot commented Mar 3, 2026

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/PR1883/dynamix.unraid.net.plg

Copy link
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: 8

🧹 Nitpick comments (1)
web/src/locales/ca.json (1)

498-530: Minor terminology variation noted.

The server state messages correctly update to boot device terminology. However, there's a slight variation in Catalan terminology:

  • Lines 422-427 use "dispositiu d'inici"
  • Lines 498+ use "dispositiu d'arrencada"

Both terms are valid Catalan for "boot device," and this variation likely comes from different translators in Crowdin. This is a minor cosmetic inconsistency that doesn't affect functionality. If consistency is desired, consider standardizing on one term across the file.

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

In `@web/src/locales/ca.json` around lines 498 - 530, The file uses two Catalan
terms for "boot device" ("dispositiu d'inici" and "dispositiu d'arrencada")
causing inconsistent copy across message keys; pick one preferred term and
update all relevant locale keys (e.g., server.state.eblacklisted.*,
server.state.eguid.*, server.state.enoflash.*, server.state.enokeyfile*,
server.state.enokeyfile2.* and others shown in the diff) to use that single term
for consistency, ensuring you replace both heading/humanReadable/message strings
where the alternative appears and preserve punctuation and HTML tags.
🤖 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 428: The translation uses “গাইড” (guide) instead of the technical
identifier GUID; update the affected locale entries (e.g., the
"registration.deviceGuid" key and the other changed keys referenced in the
comment) to use the correct term—preferably the technical "GUID" (or "ডিভাইস
GUID"/"ডিভাইস GUID নম্বর" if you want mixed script) instead of "গাইড"—so replace
"ডিভাইস গাইড" with "ডিভাইস GUID" (or plain "GUID" where context requires) for
all mentioned keys (lines referenced: 428, 498, 502, 504-505).

In `@web/src/locales/hr.json`:
- Line 498: Update the Croatian translation value for the key
"server.state.eblacklisted.heading" to improve word order and readability;
replace the current string "Na crnoj listi podizanja sustava GUID uređaja" with
a more natural phrasing such as "GUID uređaja za podizanje sustava je na crnoj
listi" so the heading reads fluently in Croatian.

In `@web/src/locales/it.json`:
- Line 509: Update the Italian localization string for key
"server.state.eguid.messageRecentReplacement": replace the incorrect article
phrase "nei ultimi 12 mesi" with the grammatically correct "negli ultimi 12
mesi" inside the JSON value so the sentence reads correctly; locate the string
by the key "server.state.eguid.messageRecentReplacement" and edit only that
substring in the value.

In `@web/src/locales/lv.json`:
- Around line 526-527: Replace the incorrect phrase "beidzies Tiesas
uzstādīšanas izmantojums" with the correct Latvian wording for "expired trial
installation" in both keys server.state.enokeyfile2.messageWithConnect and
server.state.enokeyfile2.messageWithoutConnect; update the sentence to use
"beigusies izmēģinājuma instalācija" so the messages read "...Ja tas bija
beigusies izmēģinājuma instalācija, jūs varat iegādāties licences atslēgu."

In `@web/src/locales/pl.json`:
- Line 426: The translation for key
registration.bootDeviceType.internalBootMulti is incorrect; replace the value
"Wewnętrzny rozruch (wielo-urzędowe)" with a correct Polish term such as
"Wewnętrzny rozruch (wielourządzeniowy)" so the string maps properly to
“multi-device” in this context and matches other boot type labels.
- Around line 526-527: The Polish translation for the two message keys
server.state.enokeyfile2.messageWithConnect and
server.state.enokeyfile2.messageWithoutConnect uses "gra próbna" (trial game)
incorrectly; update both strings to use the correct term "wersja próbna" (trial
version) in the sentence that currently reads "Jeśli była to gra próbna, możesz
kupić klucz licencyjny." so it becomes "Jeśli była to wersja próbna, możesz
kupić klucz licencyjny." to accurately reflect the installation/licensing
context.

In `@web/src/locales/sv.json`:
- Around line 501-509: The strings under keys like
"server.state.eblacklisted1.heading", "server.state.eblacklisted1.message",
"server.state.eblacklisted2.heading", "server.state.eguid.heading",
"server.state.eguid.humanReadable", and the various
"server.state.eguid.message*" keys use inconsistent Swedish for the device word
and an incorrect “matchning” label; standardize the device word to "bootenhet"
everywhere (replace any "boothenhet") and change "Licensnyckel /
boothenhets-GUID-matchning" to indicate a GUID mismatch (e.g., "Licensnyckel /
bootenhets-GUID-mismatch" or the proper Swedish term for mismatch), and apply
the same spelling fixes to the other affected keys mentioned in the comment
(around lines 512 and 516-523) so all messages consistently use the corrected
wording.
- Around line 526-527: Replace the incorrect phrase "utgånget
Prova-installation" in the values for
server.state.enokeyfile2.messageWithConnect and
server.state.enokeyfile2.messageWithoutConnect with the grammatically correct
Swedish "utgången provinstallation" (lowercase and using "provinstallation" as a
single word) so the UI guidance reads naturally.

---

Nitpick comments:
In `@web/src/locales/ca.json`:
- Around line 498-530: The file uses two Catalan terms for "boot device"
("dispositiu d'inici" and "dispositiu d'arrencada") causing inconsistent copy
across message keys; pick one preferred term and update all relevant locale keys
(e.g., server.state.eblacklisted.*, server.state.eguid.*,
server.state.enoflash.*, server.state.enokeyfile*, server.state.enokeyfile2.*
and others shown in the diff) to use that single term for consistency, ensuring
you replace both heading/humanReadable/message strings where the alternative
appears and preserve punctuation and HTML tags.

ℹ️ Review info

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Disabled knowledge base sources:

  • Linear integration is disabled

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between db88eb8 and ee9e33e.

📒 Files selected for processing (23)
  • 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/ru.json
  • web/src/locales/sv.json
  • web/src/locales/uk.json
  • web/src/locales/zh.json

"registration.bootDeviceType.internalBoot": "অভ্যন্তরীণ বুট",
"registration.bootDeviceType.internalBootMulti": "অভ্যন্তরীণ বুট (একাধিক-ডিভাইস)",
"registration.bootDeviceType.tpm": "টিপিএম",
"registration.deviceGuid": "ডিভাইস গাইড",
Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

GUID is mistranslated as “গাইড” in several changed strings.

Line 428 and Lines 498, 502, and 504-505 translate GUID as “গাইড” (“guide”), which can mislead troubleshooting around device identity.

🛠️ Suggested text fixes
-  "registration.deviceGuid": "ডিভাইস গাইড",
+  "registration.deviceGuid": "ডিভাইস GUID",

-  "server.state.eblacklisted.heading": "ব্ল্যাকলিস্টেড বুট ডিভাইস গাইড",
+  "server.state.eblacklisted.heading": "ব্ল্যাকলিস্টেড বুট ডিভাইস GUID",

-  "server.state.eblacklisted1.message": "<p>এই বুট ডিভাইসে অবৈধ গাইড হয়েছে। অনুগ্রহ করে অন্য এক বুট ডিভাইস চেষ্টা করুন।</p>",
+  "server.state.eblacklisted1.message": "<p>এই বুট ডিভাইসে অবৈধ GUID রয়েছে। অনুগ্রহ করে অন্য একটি বুট ডিভাইস চেষ্টা করুন।</p>",

-  "server.state.eguid.heading": "নিবন্ধন কী / বুট ডিভাইস গাইড মেলাতে ব্যর্থ",
+  "server.state.eguid.heading": "নিবন্ধন কী / বুট ডিভাইস GUID মেলাতে ব্যর্থ",

-  "server.state.eguid.humanReadable": "গাইড ত্রুটি",
+  "server.state.eguid.humanReadable": "GUID ত্রুটি",

Also applies to: 498-498, 502-502, 504-505

🤖 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 428, The translation uses “গাইড” (guide)
instead of the technical identifier GUID; update the affected locale entries
(e.g., the "registration.deviceGuid" key and the other changed keys referenced
in the comment) to use the correct term—preferably the technical "GUID" (or
"ডিভাইস GUID"/"ডিভাইস GUID নম্বর" if you want mixed script) instead of "গাইড"—so
replace "ডিভাইস গাইড" with "ডিভাইস GUID" (or plain "GUID" where context
requires) for all mentioned keys (lines referenced: 428, 498, 502, 504-505).

"server.state.default.humanReadable": "Ne ažurirano",
"server.state.default.message": "<p>Osvježite stranicu kako biste bili sigurni da ste najnoviju konfiguraciju učitali</p>",
"server.state.eblacklisted.heading": "Crna lista USB Flash GUID",
"server.state.eblacklisted.heading": "Na crnoj listi podizanja sustava GUID uređaja",
Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

Polish heading wording for readability.

Line [498] is understandable, but the current Croatian word order is awkward for a heading. Consider a more natural phrasing like “GUID uređaja za podizanje sustava je na crnoj listi.”

✏️ Suggested wording adjustment
-  "server.state.eblacklisted.heading": "Na crnoj listi podizanja sustava GUID uređaja",
+  "server.state.eblacklisted.heading": "GUID uređaja za podizanje sustava je na crnoj listi",
📝 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
"server.state.eblacklisted.heading": "Na crnoj listi podizanja sustava GUID uređaja",
"server.state.eblacklisted.heading": "GUID uređaja za podizanja sustava je na crnoj listi",
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@web/src/locales/hr.json` at line 498, Update the Croatian translation value
for the key "server.state.eblacklisted.heading" to improve word order and
readability; replace the current string "Na crnoj listi podizanja sustava GUID
uređaja" with a more natural phrasing such as "GUID uređaja za podizanje sustava
je na crnoj listi" so the heading reads fluently in Croatian.

"server.state.eguid.messageRecentReplacement": "<p>Il file della chiave di licenza non corrisponde al dispositivo di avvio USB Flash. Copia il file della chiave corretta nella directory /config sul tuo dispositivo di avvio USB Flash o scegli Acquista Chiave.</p><p>La tua chiave di registrazione Unraid non è idonea per la sostituzione poiché è stata sostituita negli ultimi 12 mesi.</p>",
"server.state.eguid.messageBlacklisted": "<p>Il file della chiave di licenza non corrisponde al dispositivo di avvio. Si prega di copiare il file chiave corretto nella directory /config sul dispositivo di avvio o scegliere Acquista Chiave.</p><p>La tua chiave di registrazione Unraid non è idonea per la sostituzione in quanto inserita nella lista nera.</p>",
"server.state.eguid.messageMismatch": "<p>Il file della chiave di licenza non corrisponde al dispositivo di avvio. Si prega di copiare il file chiave corretto nella directory /config sul dispositivo di avvio.</p><p>Puoi anche tentare di Acquistare o Sostituire la tua chiave.</p>",
"server.state.eguid.messageRecentReplacement": "<p>Il file della chiave di licenza non corrisponde al dispositivo di avvio. Si prega di copiare il file chiave corretto nella directory /config sul dispositivo di avvio o scegliere Acquista Chiave.</p><p>La tua chiave di registrazione Unraid non è idonea per la sostituzione poiché è stata sostituita nei ultimi 12 mesi.</p>",
Copy link
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 Italian article in replacement-timeframe sentence.

Line 509 should use negli ultimi 12 mesi (not nei ultimi 12 mesi) for correct grammar.

Suggested correction
-  "server.state.eguid.messageRecentReplacement": "<p>... poiché è stata sostituita nei ultimi 12 mesi.</p>",
+  "server.state.eguid.messageRecentReplacement": "<p>... poiché è stata sostituita negli ultimi 12 mesi.</p>",
📝 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
"server.state.eguid.messageRecentReplacement": "<p>Il file della chiave di licenza non corrisponde al dispositivo di avvio. Si prega di copiare il file chiave corretto nella directory /config sul dispositivo di avvio o scegliere Acquista Chiave.</p><p>La tua chiave di registrazione Unraid non è idonea per la sostituzione poiché è stata sostituita nei ultimi 12 mesi.</p>",
"server.state.eguid.messageRecentReplacement": "<p>Il file della chiave di licenza non corrisponde al dispositivo di avvio. Si prega di copiare il file chiave corretto nella directory /config sul dispositivo di avvio o scegliere Acquista Chiave.</p><p>La tua chiave di registrazione Unraid non è idonea per la sostituzione poiché è stata sostituita negli ultimi 12 mesi.</p>",
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@web/src/locales/it.json` at line 509, Update the Italian localization string
for key "server.state.eguid.messageRecentReplacement": replace the incorrect
article phrase "nei ultimi 12 mesi" with the grammatically correct "negli ultimi
12 mesi" inside the JSON value so the sentence reads correctly; locate the
string by the key "server.state.eguid.messageRecentReplacement" and edit only
that substring in the value.

Comment on lines +526 to +527
"server.state.enokeyfile2.messageWithConnect": "<p>Jūsu licences atslēgas fails ir bojāts vai nav pieejams. Atslēgas failam vajadzētu atrasties direktorijā /config uz palaišanas ierīces.</p><p>Jūs varat mēģināt atgūt savu atslēgu ar jūsu Unraid.net kontu.</p><p>Ja tas bija beidzies Tiesas uzstādīšanas izmantojums, jūs varat iegādāties licences atslēgu.</p>",
"server.state.enokeyfile2.messageWithoutConnect": "<p>Jūsu licences atslēgas fails ir bojāts vai nav pieejams. Atslēgas failam vajadzētu atrasties direktorijā /config uz palaišanas ierīces.</p><p>Ja jums nav licences atslēgas faila dublējuma kopijas, jūs varat mēģināt atgūt savu atslēgu.</p><p>Ja tas bija beidzies Tiesas uzstādīšanas izmantojums, jūs varat iegādāties licences atslēgu.</p>",
Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

Replace incorrect expired-trial phrasing in keyfile recovery messages.

Line 526 and Line 527 use beidzies Tiesas uzstādīšanas izmantojums, which does not correctly express “expired trial installation” in Latvian.

Suggested correction
-  "server.state.enokeyfile2.messageWithConnect": "<p>... Ja tas bija beidzies Tiesas uzstādīšanas izmantojums, jūs varat iegādāties licences atslēgu.</p>",
+  "server.state.enokeyfile2.messageWithConnect": "<p>... Ja tā bija beigusies izmēģinājuma instalācija, jūs varat iegādāties licences atslēgu.</p>",
-  "server.state.enokeyfile2.messageWithoutConnect": "<p>... Ja tas bija beidzies Tiesas uzstādīšanas izmantojums, jūs varat iegādāties licences atslēgu.</p>",
+  "server.state.enokeyfile2.messageWithoutConnect": "<p>... Ja tā bija beigusies izmēģinājuma instalācija, jūs varat iegādāties licences atslēgu.</p>",
📝 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
"server.state.enokeyfile2.messageWithConnect": "<p>Jūsu licences atslēgas fails ir bojāts vai nav pieejams. Atslēgas failam vajadzētu atrasties direktorijā /config uz palaišanas ierīces.</p><p>Jūs varat mēģināt atgūt savu atslēgu ar jūsu Unraid.net kontu.</p><p>Ja tas bija beidzies Tiesas uzstādīšanas izmantojums, jūs varat iegādāties licences atslēgu.</p>",
"server.state.enokeyfile2.messageWithoutConnect": "<p>Jūsu licences atslēgas fails ir bojāts vai nav pieejams. Atslēgas failam vajadzētu atrasties direktorijā /config uz palaišanas ierīces.</p><p>Ja jums nav licences atslēgas faila dublējuma kopijas, jūs varat mēģināt atgūt savu atslēgu.</p><p>Ja tas bija beidzies Tiesas uzstādīšanas izmantojums, jūs varat iegādāties licences atslēgu.</p>",
"server.state.enokeyfile2.messageWithConnect": "<p>Jūsu licences atslēgas fails ir bojāts vai nav pieejams. Atslēgas failam vajadzētu atrasties direktorijā /config uz palaišanas ierīces.</p><p>Jūs varat mēģināt atgūt savu atslēgu ar jūsu Unraid.net kontu.</p><p>Ja bija beigusies izmēģinājuma instalācija, jūs varat iegādāties licences atslēgu.</p>",
"server.state.enokeyfile2.messageWithoutConnect": "<p>Jūsu licences atslēgas fails ir bojāts vai nav pieejams. Atslēgas failam vajadzētu atrasties direktorijā /config uz palaišanas ierīces.</p><p>Ja jums nav licences atslēgas faila dublējuma kopijas, jūs varat mēģināt atgūt savu atslēgu.</p><p>Ja bija beigusies izmēģinājuma instalācija, jūs varat iegādāties licences atslēgu.</p>",
🤖 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 526 - 527, Replace the incorrect phrase
"beidzies Tiesas uzstādīšanas izmantojums" with the correct Latvian wording for
"expired trial installation" in both keys
server.state.enokeyfile2.messageWithConnect and
server.state.enokeyfile2.messageWithoutConnect; update the sentence to use
"beigusies izmēģinājuma instalācija" so the messages read "...Ja tas bija
beigusies izmēģinājuma instalācija, jūs varat iegādāties licences atslēgu."

"registration.bootDeviceType": "Typ urządzenia rozruchowego",
"registration.bootDeviceType.flash": "USB Flash",
"registration.bootDeviceType.internalBoot": "Rozruch wewnętrzny",
"registration.bootDeviceType.internalBootMulti": "Wewnętrzny rozruch (wielo-urzędowe)",
Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

Correct internalBootMulti translation term.

Line 426 uses wielo-urzędowe, which does not map to “multi-device” in this context.

Suggested correction
-  "registration.bootDeviceType.internalBootMulti": "Wewnętrzny rozruch (wielo-urzędowe)",
+  "registration.bootDeviceType.internalBootMulti": "Rozruch wewnętrzny (wiele urządzeń)",
📝 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
"registration.bootDeviceType.internalBootMulti": "Wewnętrzny rozruch (wielo-urzędowe)",
"registration.bootDeviceType.internalBootMulti": "Rozruch wewnętrzny (wiele urządzeń)",
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@web/src/locales/pl.json` at line 426, The translation for key
registration.bootDeviceType.internalBootMulti is incorrect; replace the value
"Wewnętrzny rozruch (wielo-urzędowe)" with a correct Polish term such as
"Wewnętrzny rozruch (wielourządzeniowy)" so the string maps properly to
“multi-device” in this context and matches other boot type labels.

Comment on lines +526 to +527
"server.state.enokeyfile2.messageWithConnect": "<p>Twój plik klucza licencyjnego jest uszkodzony lub nieobecny. Plik klucza powinien znajdować się w katalogu /config na urządzeniu rozruchowym.</p><p>Można spróbować odzyskać klucz za pomocą swojego konta Unraid.net.</p><p>Jeśli była to gra próbna, możesz kupić klucz licencyjny.</p>",
"server.state.enokeyfile2.messageWithoutConnect": "<p>Twój plik klucza licencyjnego jest uszkodzony lub nieobecny. Plik klucza powinien znajdować się w katalogu /config na urządzeniu rozruchowym.</p><p>Jeśli nie masz kopii zapasowej pliku klucza licencyjnego, możesz spróbować go odzyskać.</p><p>Jeśli była to gra próbna, możesz kupić klucz licencyjny.</p>",
Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

Fix mistranslation in expired-trial keyfile guidance.

Line 526 and Line 527 currently say gra próbna (“trial game”), which is incorrect for installation/licensing flow and can mislead users.

Suggested correction
-  "server.state.enokeyfile2.messageWithConnect": "<p>... Jeśli była to gra próbna, możesz kupić klucz licencyjny.</p>",
+  "server.state.enokeyfile2.messageWithConnect": "<p>... Jeśli była to wygasła instalacja próbna, możesz kupić klucz licencyjny.</p>",
-  "server.state.enokeyfile2.messageWithoutConnect": "<p>... Jeśli była to gra próbna, możesz kupić klucz licencyjny.</p>",
+  "server.state.enokeyfile2.messageWithoutConnect": "<p>... Jeśli była to wygasła instalacja próbna, możesz kupić klucz licencyjny.</p>",
📝 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
"server.state.enokeyfile2.messageWithConnect": "<p>Twój plik klucza licencyjnego jest uszkodzony lub nieobecny. Plik klucza powinien znajdować się w katalogu /config na urządzeniu rozruchowym.</p><p>Można spróbować odzyskać klucz za pomocą swojego konta Unraid.net.</p><p>Jeśli była to gra próbna, możesz kupić klucz licencyjny.</p>",
"server.state.enokeyfile2.messageWithoutConnect": "<p>Twój plik klucza licencyjnego jest uszkodzony lub nieobecny. Plik klucza powinien znajdować się w katalogu /config na urządzeniu rozruchowym.</p><p>Jeśli nie masz kopii zapasowej pliku klucza licencyjnego, możesz spróbować go odzyskać.</p><p>Jeśli była to gra próbna, możesz kupić klucz licencyjny.</p>",
"server.state.enokeyfile2.messageWithConnect": "<p>Twój plik klucza licencyjnego jest uszkodzony lub nieobecny. Plik klucza powinien znajdować się w katalogu /config na urządzeniu rozruchowym.</p><p>Można spróbować odzyskać klucz za pomocą swojego konta Unraid.net.</p><p>Jeśli była to wygasła instalacja próbna, możesz kupić klucz licencyjny.</p>",
"server.state.enokeyfile2.messageWithoutConnect": "<p>Twój plik klucza licencyjnego jest uszkodzony lub nieobecny. Plik klucza powinien znajdować się w katalogu /config na urządzeniu rozruchowym.</p><p>Jeśli nie masz kopii zapasowej pliku klucza licencyjnego, możesz spróbować go odzyskać.</p><p>Jeśli była to wygasła instalacja próbna, możesz kupić klucz licencyjny.</p>",
🤖 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 526 - 527, The Polish translation for
the two message keys server.state.enokeyfile2.messageWithConnect and
server.state.enokeyfile2.messageWithoutConnect uses "gra próbna" (trial game)
incorrectly; update both strings to use the correct term "wersja próbna" (trial
version) in the sentence that currently reads "Jeśli była to gra próbna, możesz
kupić klucz licencyjny." so it becomes "Jeśli była to wersja próbna, możesz
kupić klucz licencyjny." to accurately reflect the installation/licensing
context.

Comment on lines +501 to +509
"server.state.eblacklisted1.heading": "Boothenhetsfel",
"server.state.eblacklisted1.message": "<p>Denna boothenhet har en ogiltig GUID. Försök med en annan boothenhet</p>",
"server.state.eblacklisted2.heading": "Boothenheten har inget serienummer",
"server.state.eguid.heading": "Licensnyckel / boothenhets-GUID-matchning",
"server.state.eguid.humanReadable": "GUID Fel",
"server.state.eguid.messageAlreadyReplaced": "<p>Din Unraid-registreringsnyckel är inte berättigad till byte eftersom den har bytts ut inom de senaste 12 månaderna.</p>",
"server.state.eguid.messageBlacklisted": "<p>Licensnyckelfilen stämmer inte överens med USB Flash-startenheten. Vänligen kopiera rätt nyckelfil till /config-katalogen på din USB Flash-startenhet eller välj Köp Nyckel.</p><p>Din Unraid-registreringsnyckel är inte berättigad till byte eftersom den är svartlistad.</p>",
"server.state.eguid.messageMismatch": "<p>Licensnyckelfilen stämmer inte överens med USB Flash-startenheten. Vänligen kopiera rätt nyckelfil till /config-katalogen på din USB Flash-startenhet.</p><p>Du kan även försöka att Köpa eller Byta ut din nyckel.</p>",
"server.state.eguid.messageRecentReplacement": "<p>Licensnyckelfilen stämmer inte överens med USB Flash-startenheten. Vänligen kopiera rätt nyckelfil till /config-katalogen på din USB Flash-startenhet eller välj Köp Nyckel.</p><p>Din Unraid-registreringsnyckel är inte berättigad till byte eftersom den har bytts ut inom de senaste 12 månaderna.</p>",
"server.state.eguid.messageBlacklisted": "<p>Licensnyckelfilen motsvarar inte boothenheten. Vänligen kopiera rätt nyckelfil till /config-mappen på din boothenhet eller välj Köp Nyckel.</p><p>Din Unraid-registreringsnyckel är ogiltig för ersättning eftersom den är svartlistad.</p>",
"server.state.eguid.messageMismatch": "<p>Licensnyckelfilen motsvarar inte boothenheten. Vänligen kopiera rätt nyckelfil till /config-mappen på din boothenhet.</p><p>Du kan också försöka att Köpa eller Ersätta din nyckel.</p>",
"server.state.eguid.messageRecentReplacement": "<p>Licensnyckelfilen motsvarar inte boothenheten. Vänligen kopiera rätt nyckelfil till /config-mappen på din boothenhet eller välj Köp Nyckel.</p><p>Din Unraid-registreringsnyckel är ogiltig för ersättning eftersom den har bytts ut inom de senaste 12 månaderna.</p>",
Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

Fix inconsistent boothenhet spelling and mismatch phrasing in error states.

Line 501+ uses boothenhet while Line 498 uses bootenhet, and Line 504 currently reads as “matching” instead of mismatch. In these recovery/error paths, this can confuse users.

Suggested text corrections
-  "server.state.eblacklisted1.heading": "Boothenhetsfel",
+  "server.state.eblacklisted1.heading": "Bootenhetsfel",
-  "server.state.eblacklisted1.message": "<p>Denna boothenhet har en ogiltig GUID. Försök med en annan boothenhet</p>",
+  "server.state.eblacklisted1.message": "<p>Denna bootenhet har en ogiltig GUID. Försök med en annan bootenhet</p>",
-  "server.state.eblacklisted2.heading": "Boothenheten har inget serienummer",
+  "server.state.eblacklisted2.heading": "Bootenheten har inget serienummer",
-  "server.state.eguid.heading": "Licensnyckel / boothenhets-GUID-matchning",
+  "server.state.eguid.heading": "Licensnyckel / bootenhets-GUID matchar inte",
-  "server.state.eguid.messageBlacklisted": "<p>Licensnyckelfilen motsvarar inte boothenheten. Vänligen kopiera rätt nyckelfil till /config-mappen på din boothenhet eller välj Köp Nyckel.</p><p>Din Unraid-registreringsnyckel är ogiltig för ersättning eftersom den är svartlistad.</p>",
+  "server.state.eguid.messageBlacklisted": "<p>Licensnyckelfilen motsvarar inte bootenheten. Vänligen kopiera rätt nyckelfil till /config-mappen på din bootenhet eller välj Köp Nyckel.</p><p>Din Unraid-registreringsnyckel är ogiltig för ersättning eftersom den är svartlistad.</p>",
-  "server.state.eguid.messageMismatch": "<p>Licensnyckelfilen motsvarar inte boothenheten. Vänligen kopiera rätt nyckelfil till /config-mappen på din boothenhet.</p><p>Du kan också försöka att Köpa eller Ersätta din nyckel.</p>",
+  "server.state.eguid.messageMismatch": "<p>Licensnyckelfilen motsvarar inte bootenheten. Vänligen kopiera rätt nyckelfil till /config-mappen på din bootenhet.</p><p>Du kan också försöka att Köpa eller Ersätta din nyckel.</p>",
-  "server.state.eguid.messageRecentReplacement": "<p>Licensnyckelfilen motsvarar inte boothenheten. Vänligen kopiera rätt nyckelfil till /config-mappen på din boothenhet eller välj Köp Nyckel.</p><p>Din Unraid-registreringsnyckel är ogiltig för ersättning eftersom den har bytts ut inom de senaste 12 månaderna.</p>",
+  "server.state.eguid.messageRecentReplacement": "<p>Licensnyckelfilen motsvarar inte bootenheten. Vänligen kopiera rätt nyckelfil till /config-mappen på din bootenhet eller välj Köp Nyckel.</p><p>Din Unraid-registreringsnyckel är ogiltig för ersättning eftersom den har bytts ut inom de senaste 12 månaderna.</p>",
-  "server.state.eguid1.message": "<p>Det finns flera licensnyckelfiler på din boothenhet och ingen av dem motsvarar denna enhet. Ta bort alla nyckelfiler, utom den du vill ersätta, från /config-mappen på din boothenhet.</p><p>Alternativt kan du köpa en licensnyckel för denna boothenhet.</p><p>Om du vill ersätta en av dina licensnycklar med en ny nyckel bunden till denna enhet, ta först bort alla andra nyckelfiler.</p>",
+  "server.state.eguid1.message": "<p>Det finns flera licensnyckelfiler på din bootenhet och ingen av dem motsvarar denna enhet. Ta bort alla nyckelfiler, utom den du vill ersätta, från /config-mappen på din bootenhet.</p><p>Alternativt kan du köpa en licensnyckel för denna bootenhet.</p><p>Om du vill ersätta en av dina licensnycklar med en ny nyckel bunden till denna enhet, ta först bort alla andra nyckelfiler.</p>",
-  "server.state.enoflash.heading": "Kan inte få tillgång till din boothenhet",
+  "server.state.enoflash.heading": "Kan inte få tillgång till din bootenhet",
-  "server.state.enoflash.humanReadable": "Ingen Boothenhet",
+  "server.state.enoflash.humanReadable": "Ingen bootenhet",
-  "server.state.enoflash.message": "<p>Det är ett fysiskt problem med att få tillgång till din boothenhet</p>",
+  "server.state.enoflash.message": "<p>Det är ett fysiskt problem med att få tillgång till din bootenhet</p>",
-  "server.state.enokeyfile1.heading": "Ingen konfigurationsdata för boothenheten",
+  "server.state.enokeyfile1.heading": "Ingen konfigurationsdata för bootenheten",
-  "server.state.enokeyfile1.message": "<p>Det är ett problem med din boothenhet</p>",
+  "server.state.enokeyfile1.message": "<p>Det är ett problem med din bootenhet</p>"

Also applies to: 512-512, 516-523

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

In `@web/src/locales/sv.json` around lines 501 - 509, The strings under keys like
"server.state.eblacklisted1.heading", "server.state.eblacklisted1.message",
"server.state.eblacklisted2.heading", "server.state.eguid.heading",
"server.state.eguid.humanReadable", and the various
"server.state.eguid.message*" keys use inconsistent Swedish for the device word
and an incorrect “matchning” label; standardize the device word to "bootenhet"
everywhere (replace any "boothenhet") and change "Licensnyckel /
boothenhets-GUID-matchning" to indicate a GUID mismatch (e.g., "Licensnyckel /
bootenhets-GUID-mismatch" or the proper Swedish term for mismatch), and apply
the same spelling fixes to the other affected keys mentioned in the comment
(around lines 512 and 516-523) so all messages consistently use the corrected
wording.

Comment on lines +526 to +527
"server.state.enokeyfile2.messageWithConnect": "<p>Din licensnyckelfil är skadad eller saknas. Nyckelfilen bör ligga i /config-mappen på din boothenhet.</p><p>Du kan försöka att återställa din nyckel med ditt Unraid.net-konto.</p><p>Om detta var en utgånget Prova-installation, kan du köpa en licensnyckel.</p>",
"server.state.enokeyfile2.messageWithoutConnect": "<p>Din licensnyckelfil är skadad eller saknas. Nyckelfilen bör ligga i /config-mappen på din boothenhet.</p><p>Om du inte har en säkerhetskopia av din licensnyckelfil kan du försöka återställa din nyckel.</p><p>Om detta var en utgånget Prova-installation, kan du köpa en licensnyckel.</p>",
Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

Adjust trial-installation wording for correct Swedish grammar.

Line 526 and Line 527 currently use utgånget Prova-installation, which reads ungrammatical and unnatural in UI error guidance.

Suggested text correction
-  "server.state.enokeyfile2.messageWithConnect": "<p>... Om detta var en utgånget Prova-installation, kan du köpa en licensnyckel.</p>",
+  "server.state.enokeyfile2.messageWithConnect": "<p>... Om detta var en utgången provinstallation kan du köpa en licensnyckel.</p>",
-  "server.state.enokeyfile2.messageWithoutConnect": "<p>... Om detta var en utgånget Prova-installation, kan du köpa en licensnyckel.</p>",
+  "server.state.enokeyfile2.messageWithoutConnect": "<p>... Om detta var en utgången provinstallation kan du köpa en licensnyckel.</p>"
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@web/src/locales/sv.json` around lines 526 - 527, Replace the incorrect phrase
"utgånget Prova-installation" in the values for
server.state.enokeyfile2.messageWithConnect and
server.state.enokeyfile2.messageWithoutConnect with the grammatically correct
Swedish "utgången provinstallation" (lowercase and using "provinstallation" as a
single word) so the UI guidance reads naturally.

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