feat(i18n): add CJK font install banner for Linux#139
Merged
Conversation
Persistent dismissible banner shown when running on Linux with a CJK locale active (today: ja). Tells the user the Noto CJK font is missing and provides distro-specific install commands (Arch / Debian / Fedora) with per-row Copy buttons. The banner is locale-keyed for dismissal via localStorage, so adding zh / ko later is mechanical: extend CJK_LOCALES + add the native script_label to the locale JSON. No canvas glyph probe — the Linux + CJK-locale heuristic is good enough, and a false positive costs the user one dismiss click. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This was referenced May 21, 2026
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
ja)localStorage— one click, gone forever for that localezh/koextension: add toCJK_LOCALESset + add ascript_labeltranslation key per locale, no component changesWhy now
The base Linux font stack doesn't include CJK glyphs, and we deliberately don't bundle the ~80 MB Noto CJK font in the AppImage /
.deb. Users who switch the app to Japanese (or auto-detect from OS locale) on a clean Linux install currently see tofu boxes with no in-app guidance. This was promised in the i18n phase 1 plan but didn't make the cut.Design notes
noto-cjk) costs them one dismiss click — much cheaper than the probe missing a real font gap.日本語 /prefix. If the font is present, the prefix renders correctly and confirms the message is about Japanese. If the font is absent, the prefix tofus and the English half still carries the meaning.bgwas deliberately added as a Cyrillic stress test in v0.8.0-rc.1 and shipped working without any extra package.Test plan
noto-cjk) with locale switched to JA: banner appears, English half + install commands readable, Copy buttons workpacman -S noto-fonts-cjkand restart: banner still appears (we don't probe), Dismiss click hides it permanently forjaCJK_LOCALESset membership)vue-tsc --noEmitcleannpm run buildclean🤖 Generated with Claude Code