Skip to content

feat(i18n): add Korean (ko) locale + extend CJK banner to ko#143

Merged
Nic-dorman merged 1 commit into
mainfrom
i18n/ko-locale
May 21, 2026
Merged

feat(i18n): add Korean (ko) locale + extend CJK banner to ko#143
Nic-dorman merged 1 commit into
mainfrom
i18n/ko-locale

Conversation

@Nic-dorman
Copy link
Copy Markdown
Contributor

@Nic-dorman Nic-dorman commented May 21, 2026

Summary

  • Adds the seventh supported locale: Korean (ko)한국어
  • Machine-translated baseline flagged via _translator_notes, same convention as ja / nl / fr / bg / es
  • CJK font install banner extends to ko for free — the locale-keyed dismissal state and per-locale script_label translation key were designed in for exactly this in feat(i18n): add CJK font install banner for Linux #139

What's in the patch

  • locales/ko.json — full 373-key Korean baseline, ICU placeholders and special tokens preserved verbatim, validated to have identical key paths to en.json
  • composables/useLocale.ts'ko' added to SUPPORTED_LOCALES; 한국어 to NATIVE_LOCALE_NAMES
  • composables/useCjkFontBanner.ts'ko' added to CJK_LOCALES; install commands unchanged (noto-cjk is the unified CJK font)
  • pages/settings.vue — Korean option added to the language picker
  • plugins/i18n.client.ts — registers the ko message bundle

CJK banner design carry-over

  • script_label in ko.json is 한국어 (renders correctly when font present, tofus when missing — the bilingual header still carries meaning via the English half)
  • Banner message body stays English even in the ko JSON — audience is Linux users whose CJK font is broken, so a Korean message would also be tofu. Same rationale as ja.

Translation quality caveat

Machine-translated baseline. Not authored by a native Korean speaker. Polite-formal register (`-합니다` / `-하세요`). Treat any awkwardness or unidiomatic phrasing as a PR opportunity, not a bug — `_translator_notes` is set on the file. Korean-fluent contributors invited to PR against `locales/ko.json` per `CONTRIBUTING-i18n.md`.

Test plan

  • `vue-tsc --noEmit` clean
  • `npm run build` clean
  • Key parity with en.json verified (373 keys both sides, no missing or extra)
  • Switch UI locale to `한국어` → strings render correctly
  • Linux: switch to `ko` → CJK banner shows with `한국어 /` prefix + install commands
  • Windows / macOS in `ko`: no banner (correct — they ship CJK fonts by default)

🤖 Generated with Claude Code

Adds the seventh supported locale (en/ja/ko/nl/fr/bg/es). Machine-
translated baseline flagged via _translator_notes — community polish
via PR welcome, same convention as ja/nl/fr/bg/es.

The CJK font install banner already had the locale-keyed dismissal
state and per-locale script_label translation key in place from V2-267.
This patch lights ko up the way the original ticket described as
mechanical:

- composables/useCjkFontBanner.ts: 'ko' joins CJK_LOCALES
- locales/ko.json: script_label = "한국어"; install commands stay the
  same (noto-cjk is the unified Chinese/Japanese/Korean font, single
  package on every distro)
- locales/ko.json: message body stays English by design — audience
  is Linux users whose CJK font is broken, so a Korean message would
  also render as tofu

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@Nic-dorman Nic-dorman merged commit 18ed890 into main May 21, 2026
4 checks passed
@Nic-dorman Nic-dorman deleted the i18n/ko-locale branch May 21, 2026 14:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant