Skip to content

i18n: add Korean (ko) locale support#4347

Open
moduvoice wants to merge 1 commit into
Hmbown:mainfrom
moduvoice:i18n/add-korean
Open

i18n: add Korean (ko) locale support#4347
moduvoice wants to merge 1 commit into
Hmbown:mainfrom
moduvoice:i18n/add-korean

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

  • Added crates/tui/locales/ko.json with all 752 leaf keys translated to Korean.
  • Added Locale::Ko to crates/tui/src/localization.rs (enum variant, tag, display name, all()/onboarding lists, translated helper strings, parse_locale, test locale-file mapping).
  • Added Locale::Ko match arms in crates/tui/src/tui/setup/mod.rs for the guided constitution/onboarding wizard (freeform principle, evidence, communication style, privacy, autonomy, authority, ratification preview, and related test fixtures) — purely additive, mirroring the existing per-language arms with no changes to shared logic.
  • Added Locale::Ko arms to crates/tui/src/commands/groups/config/config.rs (locale tag display) and crates/tui/src/commands/groups/debug/change.rs (locale display name).
  • Added the Korean option ('9', "ko", "한국어", "(Korean)") to crates/tui/src/tui/onboarding/language.rs.
  • Updated OnboardLanguageFooter in all six existing locale files (en, es-419, ja, pt-BR, vi, zh-Hans) from "Press 1-8" to "Press 1-9" since the onboarding language picker now has 9 options.

Testing

  • cargo check -p codewhale-tui --locked passes clean.
  • Verified programmatically that ko.json has exactly the same 752 leaf keys as en.json (0 missing, 0 extra).
  • Diffed each of the 6 other locale files individually to confirm only the single "1-8" → "1-9" line changed, nothing else.
  • Spot-checked ~50+ translated strings across onboarding, config, settings, help, and the constitution/setup wizard for natural, register-consistent Korean (plain-form UI labels, 합쇼체 for sentences, no banmal).

Adds full Korean translation (752/752 keys) and registers Locale::Ko
throughout the codebase, mirroring the existing vi/ja/zh-Hans/es-419/
pt-BR pattern:

- crates/tui/locales/ko.json: new 752-key Korean translation
- crates/tui/src/localization.rs: Locale::Ko enum variant, code/display
  name, ALL_LOCALES lists, locale-specific string match arms, and
  locale-code parsing
- crates/tui/src/tui/setup/mod.rs: (Locale::Ko, ...) match arms for
  setup-flow strings
- crates/tui/src/commands/groups/config/config.rs: Locale::Ko display
  in `/config` output
- crates/tui/src/commands/groups/debug/change.rs: Locale::Ko display
  name in language switcher
- crates/tui/src/tui/onboarding/language.rs: Korean added as option 9
  in the onboarding language picker
- All 6 pre-existing locale JSON files: fixed onboarding
  OnboardLanguageFooter hint from "Press 1-8" to "Press 1-9" to
  account for the new 9th language option
@moduvoice moduvoice requested a review from Hmbown as a code owner July 11, 2026 12:21
@github-actions

Copy link
Copy Markdown

Thanks @moduvoice for taking the time to contribute.

This repository is observing a maintainer-managed PR intake gate in dry-run mode, so this pull request is staying open. This note helps maintainers prepare the allowlist before any enforcement is considered.

Please read CONTRIBUTING.md for the expected contribution shape. A maintainer can grant recurring PR access by commenting /lgtm on a pull request.

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