Skip to content

feat: add Korean (한국어) localization - #1

Closed
soohanpark wants to merge 1 commit into
mainfrom
feat/korean-localization
Closed

feat: add Korean (한국어) localization#1
soohanpark wants to merge 1 commit into
mainfrom
feat/korean-localization

Conversation

@soohanpark

@soohanpark soohanpark commented Jun 12, 2026

Copy link
Copy Markdown
Owner

Summary

Adds native Korean (ko) as a first-class language, integrated into CodexBar's existing localization system.

  • ko.lproj/Localizable.strings — all 1,040 strings translated into native, idiomatic macOS-style Korean (Apple-standard terminology: 설정, 새로 고침, 종료, 메뉴 막대, 할당량, 크레딧 구매…). Format specifiers (%@, %lld, %1$@…) and \(name) interpolation placeholders are preserved exactly; positional specifiers are used where Korean word order requires reordering.
  • Registered ko in the AppLanguage enum + Settings → Language picker.
  • Added the localized "language_korean" name to every existing catalog (e.g. en→"Korean", ja→"韓国語", zh-Hans→"韩语") so the picker renders correctly in all languages.
  • Extended LocalizationLanguageCatalogTests parity list.

No changes were needed to Localization.swift (its default case already maps "ko"Locale("ko")) or Package.swift (.process("Resources") auto-bundles the new catalog).

Using it

Selectable as 한국어 in Settings → Language (requires app restart). In the default System mode it is now picked up automatically for users whose macOS language is Korean.

Verification

  • ✅ Deterministic parity gate (plutil + checks): 1040/1040 keys match en, 0 missing/extra, 0 placeholder/format-specifier mismatches.
  • swift build succeeds.
  • ✅ All 19 localization tests pass (catalog parity, bundle resolution, no-raw-English coverage, popup, status-menu refresh).
  • ✅ Full suite (3781 tests): the only 2 failures are pre-existing and unrelated to this change (a flaky main-thread-watchdog timing test, and a MenuCardModelTests date assertion that hard-codes an English date while subscriptionDateString uses Locale.current — both reproduce on main with these changes stashed).

🤖 Generated with Claude Code

Add native Korean as a first-class language:
- ko.lproj/Localizable.strings with all 1040 strings translated to
  native macOS-style Korean (placeholders/format specifiers preserved)
- register `ko` in the AppLanguage enum + Settings language picker
- add the localized "language_korean" name to every existing catalog
- extend LocalizationLanguageCatalogTests parity list

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@soohanpark

Copy link
Copy Markdown
Owner Author

Superseded by upstream PR steipete#1460 (targeting the original repo).

@soohanpark soohanpark closed this Jun 12, 2026
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