feat(i18n): Russian, Ukrainian, Chinese, Japanese, Korean + non-Latin font pipeline - #895
Merged
Merged
Conversation
… font pipeline The last five languages of the localization push, plus the font work that unblocks them: Rajdhani covers Latin only, so UiKit's font now carries a fallbackFontReferences chain — Noto Sans Medium (full Latin/Greek/Cyrillic, 620 KB; covers ru/uk incl. г/є/і/ї) followed by Noto Sans CJK SC/JP/KR Medium subsets built with pyftsubset from exactly the glyphs the translations use plus CJK punctuation and fullwidth forms (794/812/196 KB instead of ~16 MB each). OFL license files ship next to the fonts. Locale files: 3048/3048 main keys + story packs (68/68) per language, locale_report.py --check clean; the translate prompt carries per-language register hints (informal ru/uk, Japanese desu/masu, Korean haeyo-che); a homoglyph pass normalized stray Latin lookalikes inside Cyrillic words (7 keys). Full TRANSLATION_GUIDE Step-4 wiring: GameLocale members, WebGL fallback manifest, OS-language first-run defaults, content-error dialog cases, AI-backend language map. Known limits tracked in the closed issues: CJK chat input outside the subset shows tofu on WebGL (desktop falls back to OS fonts); native review and on-screen overflow spot-checks pending playtest. Closes #886 Closes #887 Closes #888 Closes #889 Closes #891 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
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.
Closes #886
Closes #887
Closes #888
Closes #889
Closes #891
The last five languages of the localization push — the game is now fully localized in 14 languages.
Font pipeline (the blocker all five issues shared)
Rajdhani covers Latin (+ Devanagari) only.
UiKit.Font's Rajdhani importer now carries afallbackFontReferenceschain (legacy TrueTypeFontImporter, honored by uGUI dynamic fonts):pyftsubsetfrom exactly the glyphs the translations use, plus CJK punctuation (U+3000–303F) and fullwidth forms: 794 / 812 / 196 KB instead of ~16 MB each. The WebGL bundle grows ~2.4 MB total instead of ~50 MB.OFL license files ship next to the fonts (same pattern as Rajdhani). The local Unity batch build imported the new fonts and hand-written
.metafiles cleanly.Locales
locale_report.py --checkcleanGameLocalemembers (native names Русский / Українська / 简体中文 / 日本語 / 한국어), WebGL fallback manifest, OS-language first-run defaults, localized content-error dialogs, AI-backend_LANGUAGE_NAMESVerification
dotnet build -c Release --no-incremental— 0 warningsdotnet test(non-Slow): 1611 server + 187 client passingKnown limits (noted in the closed issues)
🤖 Generated with Claude Code