mirror of
https://github.com/diegosouzapw/OmniRoute.git
synced 2026-08-01 21:02:12 +03:00
Root cause (two independent causes):
1. PR #8219 (commit 2a865aaaa7) added CacheSettingsTab.tsx with 12
t("settings.*") calls whose keys were never created anywhere, not even
in en.json (the source of truth). The same PR added only 3 sidebar/header
keys (settingsCache, settingsCacheSubtitle, settingsCacheDescription) to
en+es, without running `npm run i18n:sync-ui` to propagate to the other
41 locales.
2. tests/unit/i18n-missing-placeholder-fallback.test.ts had a "#7258 repro"
test asserting the real zh-TW.json still carried raw __MISSING__:
placeholders — a premise invalidated by #8024, which completed the
Traditional Chinese translation to 100%.
What changed:
- Added the 12 missing settings.* keys to en.json, mirroring the sibling
requestBodyLimit* family (placeholders {min}/{max}/{value} match the
component exactly).
- Added real, natural translations for all 15 CacheSettingsTab-related keys
(12 settings.* + 3 sidebar/header) to pt-BR.json, vi.json and es.json (es
already had the 3 sidebar/header keys).
- Ran `npm run i18n:sync-ui` (official tool, no locale hand-edited) to stub
the remaining 39 locales with __MISSING__:<english>. This also discovered
17 pre-existing unrelated missing keys (compression-exclusions settings,
8 new-provider onboarding descriptions) never synced since #8031, and
pruned 3 dead orphaned zh-TW-only keys (codexSessionAffinity{Title,Desc,
Ttl}, superseded by the generic sessionAffinity* keys since #7274,
confirmed unused anywhere in src/) — verified programmatically as
+32/-0/~0 changed per stub locale, +32/-3/~0 changed for zh-TW.
- Rewrote the "#7258 repro" test to use a synthetic fixture (same style as
the sibling deepMergeFallback fixtures in the same file) instead of
depending on zh-TW.json's real, evolving translation-completeness state.
Proves the same behavior: collectPlaceholderLeaves() detects a raw
__MISSING__: leaf before deepMergeFallback (the fix) is exercised.
Validation: all 4 previously-red files green (23/23 assertions). Broader
sweep of 271 i18n-adjacent unit tests unaffected. i18n:check-ui-coverage
(42/42 locales >=80%, 99.7-100%) and i18n:check-glossary both pass.
typecheck:core clean.
Refs #8219
Refs #8024