Repository navigation
Conversation
Translate all 1170 UI strings, register ko in the language picker, and put Korean system faces ahead of the SC fallbacks in the font stacks. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This branch has not been deployed
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.
What & why
Adds Korean (
ko) as a fourth interface language, following the recipe insrc/renderer/src/i18n/index.ts: a fulllocales/ko.jsonwith the same key tree asen.json(all 1170 strings), registered inLANGUAGES,resourcesandsupportedLngs. Nothing changes for anyone who doesn't pick it — the app still starts in English.Two small supporting changes:
Apple SD Gothic Neo,Malgun GothicandNoto Sans CJK KRgo ahead of the SC faces in the display/ui/mono stacks (tokens.cssand its mirrortokens.ts). Hangul isn't in PingFang SC, so without this macOS falls through to whatever the system picks. Still system faces only, nothing bundled.kois added toLOCALESintest/i18n-god-name.test.cjs, so the "never hardcode Michael" rule covers it too.Translation notes:
{{var}}and every inline tag is preserved. I checked this with a script that applies the same rules asarabic-ui.test.cjs(key tree, variables, tags, array lengths, no copied English).{{godName}}/{{name}}can be anything, particles after a variable use the standard neutral form, e.g.{{godName}}이(가)./skillmode label stay in English on purpose. So doescommandCenter.logMessage, which is a pure format string.Type of change
Evidence
Before
The language picker today has no Korean (shipped 0.5.5):
The floor in English:
After
Settings with 한국어 selected (this branch,
npm run dev):The floor in Korean:
The "before" shots come from the shipped 0.5.5 app, because
mainbuilds as 0.4.6 and I didn't want to wipe my installed app's data to grab them from a dev run. Same machine, same window size, light theme.How I tested it
npm run typecheck: clean.npm run test:focused: 965 tests, 964 pass, 0 fail (1 skipped).npm run build: succeeds.npm run dev, then Settings → General → Language → 한국어 → save. The UI switches immediately. I checked the floor, the Command Center tabs, Settings, and the agent strip.🤖 Generated with Claude Code