Skip to content

feat(i18n): add Korean (ko) locale#9669

Open
moduvoice wants to merge 1 commit into
rilldata:mainfrom
moduvoice:feat/ko-i18n-translation
Open

feat(i18n): add Korean (ko) locale#9669
moduvoice wants to merge 1 commit into
rilldata:mainfrom
moduvoice:feat/ko-i18n-translation

Conversation

@moduvoice

Copy link
Copy Markdown

Motivation

This adds Korean (ko) translation support — to help Korean-speaking users use this
open-source project more comfortably in their own language.
(한국 사람들의 오픈소스 이용에 도움이 되게 하기 위해서 한글화 작업을 하였습니다.)

Changes

  • Add web-common/src/lib/i18n/messages/ko.json with a full Korean message catalog (1786 keys), matching en.json key-for-key, including pluralized/variant messages.
  • Register ko in web-common/src/lib/i18n/project.inlang/settings.json (locales: ["en", "es", "ko"]).
  • Add a ko entry (한국어) to LanguageSwitcher.svelte.
  • Add the language_ko key to en.json and es.json so the switcher can render "한국어" as a label regardless of the active locale (mirrors how language_es was added alongside en.json when Spanish was introduced in feat(i18n): add Spanish locale with full EN/ES translations #9635).

Testing

  • node scripts/i18n-guard.js --strict — catalog integrity (key parity across locales, no empty values, placeholder/variant consistency) passes.
  • npm run build:i18n (paraglide-js compile) — compiles cleanly and generates correct per-locale message functions for ko.
  • npm run test -w web-common -- --run src/components/i18nLanguageSwitcher.spec.ts passes.
  • npm run quality (web-common scope) — no new lint/type errors introduced by this change (2 pre-existing, unrelated TS errors in ExportDashboardForm.svelte are present on main before this PR and untouched by it).
  • Scripted diff of every message: verified each value's {placeholder} set, and every pluralized message's declarations/selectors/match shape, are identical to en.json — only the Korean text differs.

Checklist:

  • Covered by tests
  • Ran it and it works as intended
  • Reviewed the diff before requesting a review
  • Checked for unhandled edge cases
  • Linked the issues it closes
  • Checked if the docs need to be updated. If so, create a separate Linear DOCS issue
  • Intend to cherry-pick into the release branch
  • I'm proud of this work!

Developed in collaboration with Claude Code

Adds a full Korean message catalog alongside the existing en/es locales,
following the Paraglide/inlang setup introduced in rilldata#9570 and rilldata#9635.

- web-common/src/lib/i18n/messages/ko.json: 1786 keys, full parity with
  en.json (including pluralized/variant messages)
- Register `ko` in project.inlang/settings.json
- Add `ko` option (한국어) to LanguageSwitcher.svelte
- Add `language_ko` key to en.json/es.json so the switcher can render the
  Korean language label regardless of active locale
@nishantmonu51 nishantmonu51 added Type:Feature New feature request Size:XL Very large change: 2,000+ lines labels Jul 10, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Size:XL Very large change: 2,000+ lines Type:Feature New feature request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants