fix(i18n): restore structural parity across all 9 locales#403
Open
monotykamary wants to merge 2 commits into
Open
fix(i18n): restore structural parity across all 9 locales#403monotykamary wants to merge 2 commits into
monotykamary wants to merge 2 commits into
Conversation
Rebuilt every non-English locale file against en.json as the source of truth. 3 structural issues were fixed: 1. Orphan keys stripped — fr/de/es had 249 stale keys from an old schema version (e.g. camera.cancel, clipboard.code, common.confirm) that no longer exist in en.json. 2. Missing keys added — each locale was missing between 2 (ja/ko/zh-*) and 608 (ru) leaf keys that exist in the current en.json. New keys fall back to English until native-speaking contributors translate them. 3. Type mismatches corrected — 2 keys (fileSearch.filters and onboarding.welcome) were structured as nested objects in 3 locales where en.json uses plain strings. Now structurally identical. All 9 locales pass 'node scripts/check-i18n.mjs' with 0 missing, 0 extra, 0 invalid.
Applied human-quality translations to the 5 locales that were 90%+ complete but still had English fallback strings for recent features: - it (Italian): +81 translations (now 813/894 done, 82 brand terms) - ja (Japanese): +52 translations (now 842/894 done, 50 brand/loanwords) - ko (Korean): +48 translations (now 846/894 done, 46 brand/loanwords) - zh-Hans: +37 translations (now 857/894 done, 35 brand/loanwords) - zh-Hant: +39 translations (now 855/894 done, 37 brand/loanwords) Brand names, product names (SuperCmd, OpenAI, Claude, Gemini, Ollama, ElevenLabs, Whisper, Parakeet, etc.), API placeholders, URLs, and technical acronyms (AI, LLM, URL, ASR) were left as-is in all locales. All 5 files still pass node scripts/check-i18n.mjs.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Rebuilt every non-English locale file against
en.jsonas the source of truth, fixing 3 structural issues that caused broken translations for non-English users. Then translated the "easy 5" locales (it, ja, ko, zh-Hans, zh-Hant) from English fallback to their native language.Structural Fix (commit 1 — all 9 files)
de,es,fr,it,ja,ko,ru,zh-Hans,zh-Hantwere restructured to matchen.jsonexactly:1. Orphan keys stripped (fr, de, es)
These locales had 249 stale keys from an old schema version that no longer exist in
en.json(e.g.camera.cancel,clipboard.code,common.confirm).2. Missing keys added (all locales)
3. Type mismatches corrected (fr, de, es)
fileSearch.filtersandonboarding.welcomewere nested objects in these locales whereen.jsonuses flat strings. Restructured to match.Verification
All 9 locales pass
node scripts/check-i18n.mjswith 0 missing, 0 extra, 0 invalid.Translation Fill (commit 2 — it, ja, ko, zh-Hans, zh-Hant)
Applied human-quality native translations to the 5 locales that were 90%+ complete:
What was not translated (intentionally) — Brand names (SuperCmd, OpenAI, Claude, Gemini, Ollama, LM Studio, ElevenLabs, Whisper, Parakeet), product names (OpenAI Whisper-1, ElevenLabs Scribe v1/v2, GPT-4o Transcribe), API placeholders (sk-..., AIza...), technical acronyms (AI, LLM, URL, ASR), and de-facto loanwords (OK, Enter, Info).
Remaining work
The 4 "hard" locales still have significant English-fallback surface:
These 4 will require dedicated native-speaker contributions.