From d2b7051100149fa811608747c34fcb7b9b1c45ea Mon Sep 17 00:00:00 2001 From: mlopezsegura <90263997+mlopezsegura@users.noreply.github.com> Date: Sat, 14 Nov 2026 13:52:44 +0100 Subject: [PATCH] Fix the backend catalogs broken by the mosaic merge Merging master into feature/stream-mosaic left error.mosaicApply without its trailing comma in all 22 backend catalogs, so BackendText could not parse them and the service failed at startup. Also counts the 96 keys in the test. Co-Authored-By: Claude Opus 5.5 --- Services/Localization/Locales/bg.json | 2 +- Services/Localization/Locales/cs.json | 2 +- Services/Localization/Locales/de.json | 2 +- Services/Localization/Locales/en.json | 2 +- Services/Localization/Locales/en_GB.json | 2 +- Services/Localization/Locales/en_US.json | 2 +- Services/Localization/Locales/es.json | 2 +- Services/Localization/Locales/fr.json | 2 +- Services/Localization/Locales/hu.json | 2 +- Services/Localization/Locales/it.json | 2 +- Services/Localization/Locales/ja.json | 2 +- Services/Localization/Locales/ko.json | 2 +- Services/Localization/Locales/pl.json | 2 +- Services/Localization/Locales/pt.json | 2 +- Services/Localization/Locales/pt_BR.json | 2 +- Services/Localization/Locales/ru.json | 2 +- Services/Localization/Locales/sv.json | 2 +- Services/Localization/Locales/tr.json | 2 +- Services/Localization/Locales/uk.json | 2 +- Services/Localization/Locales/vi.json | 2 +- Services/Localization/Locales/zh.json | 2 +- Services/Localization/Locales/zh_TW.json | 2 +- tests/i18n-backend.test.cjs | 4 ++-- 23 files changed, 24 insertions(+), 24 deletions(-) diff --git a/Services/Localization/Locales/bg.json b/Services/Localization/Locales/bg.json index 56c1d68..ce48a19 100644 --- a/Services/Localization/Locales/bg.json +++ b/Services/Localization/Locales/bg.json @@ -92,7 +92,7 @@ "error.mosaicBusy": "'{0}' вече е в мозайка.", "error.mosaicFull": "Мозайката вече има 4 сесии.", "error.mosaicGuestStart": "'{0}' не стартира навреме.", - "error.mosaicApply": "Сесиите не можаха да бъдат пренаредени: {0}" + "error.mosaicApply": "Сесиите не можаха да бъдат пренаредени: {0}", "isolatedUser.passwordKept": "Потребителят '{0}' вече съществуваше; паролата му се запазва (Steam и другите запазени влизания остават валидни).", "isolatedUser.passwordStoreFailed": "Паролата на '{0}' не можа да бъде запазена или прочетена в LSA: {1}. Тя ще бъде нулирана при следващото стартиране." } \ No newline at end of file diff --git a/Services/Localization/Locales/cs.json b/Services/Localization/Locales/cs.json index 66bcc88..9c5c3a6 100644 --- a/Services/Localization/Locales/cs.json +++ b/Services/Localization/Locales/cs.json @@ -92,7 +92,7 @@ "error.mosaicBusy": "'{0}' už je v mozaice.", "error.mosaicFull": "Mozaika už má 4 relace.", "error.mosaicGuestStart": "'{0}' se nespustila včas.", - "error.mosaicApply": "Relace se nepodařilo přeskládat: {0}" + "error.mosaicApply": "Relace se nepodařilo přeskládat: {0}", "isolatedUser.passwordKept": "Uživatel '{0}' již existoval; jeho heslo se zachovává (Steam a další uložená přihlášení zůstávají platná).", "isolatedUser.passwordStoreFailed": "Heslo uživatele '{0}' nelze uložit ani přečíst v LSA: {1}. Při příštím spuštění bude obnoveno." } \ No newline at end of file diff --git a/Services/Localization/Locales/de.json b/Services/Localization/Locales/de.json index 0c3042c..c3ffd9a 100644 --- a/Services/Localization/Locales/de.json +++ b/Services/Localization/Locales/de.json @@ -92,7 +92,7 @@ "error.mosaicBusy": "'{0}' ist bereits in einem Mosaik.", "error.mosaicFull": "Das Mosaik hat bereits 4 Sitzungen.", "error.mosaicGuestStart": "'{0}' ist nicht rechtzeitig gestartet.", - "error.mosaicApply": "Die Sitzungen konnten nicht neu angeordnet werden: {0}" + "error.mosaicApply": "Die Sitzungen konnten nicht neu angeordnet werden: {0}", "isolatedUser.passwordKept": "Benutzer '{0}' war bereits vorhanden; sein Kennwort bleibt erhalten (Steam und andere gespeicherte Anmeldungen bleiben gültig).", "isolatedUser.passwordStoreFailed": "Das Kennwort von '{0}' konnte in LSA nicht gespeichert oder gelesen werden: {1}. Es wird beim nächsten Start zurückgesetzt." } \ No newline at end of file diff --git a/Services/Localization/Locales/en.json b/Services/Localization/Locales/en.json index e5cf283..94566ee 100644 --- a/Services/Localization/Locales/en.json +++ b/Services/Localization/Locales/en.json @@ -92,7 +92,7 @@ "error.mosaicBusy": "'{0}' is already in a mosaic.", "error.mosaicFull": "The mosaic already has 4 sessions.", "error.mosaicGuestStart": "'{0}' did not start in time.", - "error.mosaicApply": "The sessions could not be rearranged: {0}" + "error.mosaicApply": "The sessions could not be rearranged: {0}", "isolatedUser.passwordKept": "User '{0}' already existed; its password is kept (Steam and other saved logins stay valid).", "isolatedUser.passwordStoreFailed": "Could not save or read the password of '{0}' in LSA: {1}. It will be reset on the next start." } \ No newline at end of file diff --git a/Services/Localization/Locales/en_GB.json b/Services/Localization/Locales/en_GB.json index 74575d1..5c9cfaf 100644 --- a/Services/Localization/Locales/en_GB.json +++ b/Services/Localization/Locales/en_GB.json @@ -92,7 +92,7 @@ "error.mosaicBusy": "'{0}' is already in a mosaic.", "error.mosaicFull": "The mosaic already has 4 sessions.", "error.mosaicGuestStart": "'{0}' did not start in time.", - "error.mosaicApply": "The sessions could not be rearranged: {0}" + "error.mosaicApply": "The sessions could not be rearranged: {0}", "isolatedUser.passwordKept": "User '{0}' already existed; its password is kept (Steam and other saved logins stay valid).", "isolatedUser.passwordStoreFailed": "Could not save or read the password of '{0}' in LSA: {1}. It will be reset on the next start." } \ No newline at end of file diff --git a/Services/Localization/Locales/en_US.json b/Services/Localization/Locales/en_US.json index dab7e52..7cbf337 100644 --- a/Services/Localization/Locales/en_US.json +++ b/Services/Localization/Locales/en_US.json @@ -92,7 +92,7 @@ "error.mosaicBusy": "'{0}' is already in a mosaic.", "error.mosaicFull": "The mosaic already has 4 sessions.", "error.mosaicGuestStart": "'{0}' did not start in time.", - "error.mosaicApply": "The sessions could not be rearranged: {0}" + "error.mosaicApply": "The sessions could not be rearranged: {0}", "isolatedUser.passwordKept": "User '{0}' already existed; its password is kept (Steam and other saved logins stay valid).", "isolatedUser.passwordStoreFailed": "Could not save or read the password of '{0}' in LSA: {1}. It will be reset on the next start." } \ No newline at end of file diff --git a/Services/Localization/Locales/es.json b/Services/Localization/Locales/es.json index 9dbec10..b2290b5 100644 --- a/Services/Localization/Locales/es.json +++ b/Services/Localization/Locales/es.json @@ -92,7 +92,7 @@ "error.mosaicBusy": "'{0}' ya está en un mosaico.", "error.mosaicFull": "El mosaico ya tiene 4 sesiones.", "error.mosaicGuestStart": "'{0}' no arrancó a tiempo.", - "error.mosaicApply": "No se pudieron recolocar las sesiones: {0}" + "error.mosaicApply": "No se pudieron recolocar las sesiones: {0}", "isolatedUser.passwordKept": "Usuario '{0}' ya existía; se conserva su contraseña (Steam y otros inicios de sesión guardados siguen valiendo).", "isolatedUser.passwordStoreFailed": "No se pudo guardar o leer la contraseña de '{0}' en LSA: {1}. Se restablecerá en el siguiente arranque." } \ No newline at end of file diff --git a/Services/Localization/Locales/fr.json b/Services/Localization/Locales/fr.json index e0abf33..3a78ffa 100644 --- a/Services/Localization/Locales/fr.json +++ b/Services/Localization/Locales/fr.json @@ -92,7 +92,7 @@ "error.mosaicBusy": "'{0}' est déjà dans une mosaïque.", "error.mosaicFull": "La mosaïque compte déjà 4 sessions.", "error.mosaicGuestStart": "'{0}' n'a pas démarré à temps.", - "error.mosaicApply": "Impossible de réorganiser les sessions : {0}" + "error.mosaicApply": "Impossible de réorganiser les sessions : {0}", "isolatedUser.passwordKept": "L'utilisateur '{0}' existait déjà ; son mot de passe est conservé (Steam et les autres connexions enregistrées restent valides).", "isolatedUser.passwordStoreFailed": "Impossible d'enregistrer ou de lire le mot de passe de '{0}' dans LSA : {1}. Il sera réinitialisé au prochain démarrage." } \ No newline at end of file diff --git a/Services/Localization/Locales/hu.json b/Services/Localization/Locales/hu.json index 146788a..e93abbf 100644 --- a/Services/Localization/Locales/hu.json +++ b/Services/Localization/Locales/hu.json @@ -92,7 +92,7 @@ "error.mosaicBusy": "'{0}' már egy mozaikban van.", "error.mosaicFull": "A mozaikban már 4 munkamenet van.", "error.mosaicGuestStart": "'{0}' nem indult el időben.", - "error.mosaicApply": "Nem sikerült átrendezni a munkameneteket: {0}" + "error.mosaicApply": "Nem sikerült átrendezni a munkameneteket: {0}", "isolatedUser.passwordKept": "A(z) '{0}' felhasználó már létezett; a jelszava megmarad (a Steam és más mentett bejelentkezések érvényesek maradnak).", "isolatedUser.passwordStoreFailed": "Nem sikerült menteni vagy olvasni a(z) '{0}' jelszavát az LSA-ban: {1}. A következő indításkor alaphelyzetbe áll." } \ No newline at end of file diff --git a/Services/Localization/Locales/it.json b/Services/Localization/Locales/it.json index 2f5f6e1..3c96eba 100644 --- a/Services/Localization/Locales/it.json +++ b/Services/Localization/Locales/it.json @@ -92,7 +92,7 @@ "error.mosaicBusy": "'{0}' è già in un mosaico.", "error.mosaicFull": "Il mosaico ha già 4 sessioni.", "error.mosaicGuestStart": "'{0}' non si è avviata in tempo.", - "error.mosaicApply": "Impossibile riorganizzare le sessioni: {0}" + "error.mosaicApply": "Impossibile riorganizzare le sessioni: {0}", "isolatedUser.passwordKept": "L'utente '{0}' esisteva già; la sua password viene mantenuta (Steam e gli altri accessi salvati restano validi).", "isolatedUser.passwordStoreFailed": "Impossibile salvare o leggere la password di '{0}' in LSA: {1}. Verrà reimpostata al prossimo avvio." } \ No newline at end of file diff --git a/Services/Localization/Locales/ja.json b/Services/Localization/Locales/ja.json index ee9c012..700c66e 100644 --- a/Services/Localization/Locales/ja.json +++ b/Services/Localization/Locales/ja.json @@ -92,7 +92,7 @@ "error.mosaicBusy": "'{0}' はすでにモザイクに参加しています。", "error.mosaicFull": "モザイクにはすでに 4 セッションあります。", "error.mosaicGuestStart": "'{0}' が時間内に起動しませんでした。", - "error.mosaicApply": "セッションを再配置できませんでした: {0}" + "error.mosaicApply": "セッションを再配置できませんでした: {0}", "isolatedUser.passwordKept": "ユーザー '{0}' は既に存在していました。パスワードはそのまま保持されます (Steam などの保存済みログインは引き続き有効です)。", "isolatedUser.passwordStoreFailed": "'{0}' のパスワードを LSA に保存または読み取りできませんでした: {1}。次回の起動時にリセットされます。" } \ No newline at end of file diff --git a/Services/Localization/Locales/ko.json b/Services/Localization/Locales/ko.json index ce28e6b..88a48d4 100644 --- a/Services/Localization/Locales/ko.json +++ b/Services/Localization/Locales/ko.json @@ -92,7 +92,7 @@ "error.mosaicBusy": "'{0}'은(는) 이미 모자이크에 있습니다.", "error.mosaicFull": "모자이크에 이미 세션이 4개 있습니다.", "error.mosaicGuestStart": "'{0}'이(가) 제시간에 시작되지 않았습니다.", - "error.mosaicApply": "세션을 다시 배치하지 못했습니다: {0}" + "error.mosaicApply": "세션을 다시 배치하지 못했습니다: {0}", "isolatedUser.passwordKept": "사용자 '{0}'이(가) 이미 있습니다. 암호가 유지됩니다(Steam 및 기타 저장된 로그인은 계속 유효합니다).", "isolatedUser.passwordStoreFailed": "LSA에서 '{0}'의 암호를 저장하거나 읽을 수 없습니다: {1}. 다음 시작 시 재설정됩니다." } \ No newline at end of file diff --git a/Services/Localization/Locales/pl.json b/Services/Localization/Locales/pl.json index 5453d4d..37f1923 100644 --- a/Services/Localization/Locales/pl.json +++ b/Services/Localization/Locales/pl.json @@ -92,7 +92,7 @@ "error.mosaicBusy": "'{0}' jest już w mozaice.", "error.mosaicFull": "Mozaika ma już 4 sesje.", "error.mosaicGuestStart": "'{0}' nie uruchomiła się na czas.", - "error.mosaicApply": "Nie udało się przestawić sesji: {0}" + "error.mosaicApply": "Nie udało się przestawić sesji: {0}", "isolatedUser.passwordKept": "Użytkownik '{0}' już istniał; jego hasło zostaje zachowane (Steam i inne zapisane logowania pozostają ważne).", "isolatedUser.passwordStoreFailed": "Nie udało się zapisać ani odczytać hasła '{0}' w LSA: {1}. Zostanie zresetowane przy następnym uruchomieniu." } \ No newline at end of file diff --git a/Services/Localization/Locales/pt.json b/Services/Localization/Locales/pt.json index 5ea6066..eaa6f1e 100644 --- a/Services/Localization/Locales/pt.json +++ b/Services/Localization/Locales/pt.json @@ -92,7 +92,7 @@ "error.mosaicBusy": "'{0}' já está num mosaico.", "error.mosaicFull": "O mosaico já tem 4 sessões.", "error.mosaicGuestStart": "'{0}' não iniciou a tempo.", - "error.mosaicApply": "Não foi possível reorganizar as sessões: {0}" + "error.mosaicApply": "Não foi possível reorganizar as sessões: {0}", "isolatedUser.passwordKept": "O utilizador '{0}' já existia; a sua palavra-passe é mantida (o Steam e outros inícios de sessão guardados continuam válidos).", "isolatedUser.passwordStoreFailed": "Não foi possível guardar ou ler a palavra-passe de '{0}' no LSA: {1}. Será reposta no próximo arranque." } \ No newline at end of file diff --git a/Services/Localization/Locales/pt_BR.json b/Services/Localization/Locales/pt_BR.json index 7587c2a..6596118 100644 --- a/Services/Localization/Locales/pt_BR.json +++ b/Services/Localization/Locales/pt_BR.json @@ -92,7 +92,7 @@ "error.mosaicBusy": "'{0}' já está em um mosaico.", "error.mosaicFull": "O mosaico já tem 4 sessões.", "error.mosaicGuestStart": "'{0}' não iniciou a tempo.", - "error.mosaicApply": "Não foi possível reorganizar as sessões: {0}" + "error.mosaicApply": "Não foi possível reorganizar as sessões: {0}", "isolatedUser.passwordKept": "O usuário '{0}' já existia; a senha dele é mantida (o Steam e outros logins salvos continuam válidos).", "isolatedUser.passwordStoreFailed": "Não foi possível salvar ou ler a senha de '{0}' no LSA: {1}. Ela será redefinida na próxima inicialização." } \ No newline at end of file diff --git a/Services/Localization/Locales/ru.json b/Services/Localization/Locales/ru.json index df935ed..60d78e1 100644 --- a/Services/Localization/Locales/ru.json +++ b/Services/Localization/Locales/ru.json @@ -92,7 +92,7 @@ "error.mosaicBusy": "'{0}' уже в мозаике.", "error.mosaicFull": "В мозаике уже 4 сеанса.", "error.mosaicGuestStart": "'{0}' не запустился вовремя.", - "error.mosaicApply": "Не удалось переставить сеансы: {0}" + "error.mosaicApply": "Не удалось переставить сеансы: {0}", "isolatedUser.passwordKept": "Пользователь '{0}' уже существовал; его пароль сохраняется (Steam и другие сохранённые входы остаются действительными).", "isolatedUser.passwordStoreFailed": "Не удалось сохранить или прочитать пароль '{0}' в LSA: {1}. Он будет сброшен при следующем запуске." } \ No newline at end of file diff --git a/Services/Localization/Locales/sv.json b/Services/Localization/Locales/sv.json index 39b0e29..3dbecef 100644 --- a/Services/Localization/Locales/sv.json +++ b/Services/Localization/Locales/sv.json @@ -92,7 +92,7 @@ "error.mosaicBusy": "'{0}' är redan i en mosaik.", "error.mosaicFull": "Mosaiken har redan 4 sessioner.", "error.mosaicGuestStart": "'{0}' startade inte i tid.", - "error.mosaicApply": "Sessionerna kunde inte ordnas om: {0}" + "error.mosaicApply": "Sessionerna kunde inte ordnas om: {0}", "isolatedUser.passwordKept": "Användaren '{0}' fanns redan; lösenordet behålls (Steam och andra sparade inloggningar fortsätter att gälla).", "isolatedUser.passwordStoreFailed": "Det gick inte att spara eller läsa lösenordet för '{0}' i LSA: {1}. Det återställs vid nästa start." } \ No newline at end of file diff --git a/Services/Localization/Locales/tr.json b/Services/Localization/Locales/tr.json index c1b99b3..90965d6 100644 --- a/Services/Localization/Locales/tr.json +++ b/Services/Localization/Locales/tr.json @@ -92,7 +92,7 @@ "error.mosaicBusy": "'{0}' zaten bir mozaikte.", "error.mosaicFull": "Mozaikte zaten 4 oturum var.", "error.mosaicGuestStart": "'{0}' zamanında başlamadı.", - "error.mosaicApply": "Oturumlar yeniden yerleştirilemedi: {0}" + "error.mosaicApply": "Oturumlar yeniden yerleştirilemedi: {0}", "isolatedUser.passwordKept": "'{0}' kullanıcısı zaten vardı; parolası korunuyor (Steam ve diğer kayıtlı oturum açmalar geçerli kalır).", "isolatedUser.passwordStoreFailed": "'{0}' parolası LSA'ya kaydedilemedi veya okunamadı: {1}. Bir sonraki başlatmada sıfırlanacak." } \ No newline at end of file diff --git a/Services/Localization/Locales/uk.json b/Services/Localization/Locales/uk.json index d852d82..e7bef6b 100644 --- a/Services/Localization/Locales/uk.json +++ b/Services/Localization/Locales/uk.json @@ -92,7 +92,7 @@ "error.mosaicBusy": "'{0}' вже в мозаїці.", "error.mosaicFull": "У мозаїці вже 4 сеанси.", "error.mosaicGuestStart": "'{0}' не запустився вчасно.", - "error.mosaicApply": "Не вдалося переставити сеанси: {0}" + "error.mosaicApply": "Не вдалося переставити сеанси: {0}", "isolatedUser.passwordKept": "Користувач '{0}' уже існував; його пароль зберігається (Steam та інші збережені входи залишаються дійсними).", "isolatedUser.passwordStoreFailed": "Не вдалося зберегти або прочитати пароль '{0}' в LSA: {1}. Його буде скинуто під час наступного запуску." } \ No newline at end of file diff --git a/Services/Localization/Locales/vi.json b/Services/Localization/Locales/vi.json index ab60b64..6504ed0 100644 --- a/Services/Localization/Locales/vi.json +++ b/Services/Localization/Locales/vi.json @@ -92,7 +92,7 @@ "error.mosaicBusy": "'{0}' đã ở trong một khảm.", "error.mosaicFull": "Khảm đã có 4 phiên.", "error.mosaicGuestStart": "'{0}' không khởi động kịp thời.", - "error.mosaicApply": "Không thể sắp xếp lại các phiên: {0}" + "error.mosaicApply": "Không thể sắp xếp lại các phiên: {0}", "isolatedUser.passwordKept": "Người dùng '{0}' đã tồn tại; mật khẩu được giữ nguyên (Steam và các thông tin đăng nhập đã lưu khác vẫn hợp lệ).", "isolatedUser.passwordStoreFailed": "Không thể lưu hoặc đọc mật khẩu của '{0}' trong LSA: {1}. Mật khẩu sẽ được đặt lại ở lần khởi động tiếp theo." } \ No newline at end of file diff --git a/Services/Localization/Locales/zh.json b/Services/Localization/Locales/zh.json index b55f922..220c7f8 100644 --- a/Services/Localization/Locales/zh.json +++ b/Services/Localization/Locales/zh.json @@ -92,7 +92,7 @@ "error.mosaicBusy": "'{0}' 已在拼接画面中。", "error.mosaicFull": "拼接画面已有 4 个会话。", "error.mosaicGuestStart": "'{0}' 未能及时启动。", - "error.mosaicApply": "无法重新排列会话:{0}" + "error.mosaicApply": "无法重新排列会话:{0}", "isolatedUser.passwordKept": "用户 '{0}' 已存在;保留其密码(Steam 和其他已保存的登录仍然有效)。", "isolatedUser.passwordStoreFailed": "无法在 LSA 中保存或读取 '{0}' 的密码:{1}。下次启动时将重置。" } \ No newline at end of file diff --git a/Services/Localization/Locales/zh_TW.json b/Services/Localization/Locales/zh_TW.json index 2c37e3b..c9a390f 100644 --- a/Services/Localization/Locales/zh_TW.json +++ b/Services/Localization/Locales/zh_TW.json @@ -92,7 +92,7 @@ "error.mosaicBusy": "'{0}' 已在拼接畫面中。", "error.mosaicFull": "拼接畫面已有 4 個工作階段。", "error.mosaicGuestStart": "'{0}' 未能及時啟動。", - "error.mosaicApply": "無法重新排列工作階段:{0}" + "error.mosaicApply": "無法重新排列工作階段:{0}", "isolatedUser.passwordKept": "使用者 '{0}' 已存在;保留其密碼(Steam 和其他已儲存的登入仍然有效)。", "isolatedUser.passwordStoreFailed": "無法在 LSA 中儲存或讀取 '{0}' 的密碼:{1}。下次啟動時將重設。" } \ No newline at end of file diff --git a/tests/i18n-backend.test.cjs b/tests/i18n-backend.test.cjs index 68e1dc8..a22b1d6 100644 --- a/tests/i18n-backend.test.cjs +++ b/tests/i18n-backend.test.cjs @@ -195,11 +195,11 @@ const backendTextCode = fs.readFileSync(path.join(root, 'Services/Localization/B // We need to test the actual compiled code. Let's create a test that runs the actual .NET code. // For now, test the catalog integrity. -test('All 22 backend catalogs have exactly 94 keys', () => { +test('All 22 backend catalogs have exactly 96 keys', () => { const codes = Object.keys(backendCatalogs).sort(); assert.equal(codes.length, 22); for (const [lang, table] of Object.entries(backendCatalogs)) { - assert.equal(Object.keys(table).length, 94, lang); + assert.equal(Object.keys(table).length, 96, lang); for (const [key, value] of Object.entries(table)) { assert.equal(typeof value, 'string', lang + ':' + key); assert.ok(value.length > 0, lang + ':' + key + ' is empty');