feat(desktop): add Korean (ko) locale - #167
Open
moduvoice wants to merge 1 commit into
Open
Conversation
Add a full Korean translation (apps/desktop/src/i18n/locales/ko.json), matching en.json's key structure 1:1 with all interpolation placeholders preserved. Register ko in the i18next resources/supportedLocales list in shared.ts and add it to the language switcher on the Preferences page. Also add the "ko" language-name entry to the existing de/es/ja/zh-TW locale files so the switcher shows "한국어" consistently everywhere. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (7)
📝 WalkthroughWalkthroughThe desktop app adds a complete Korean translation catalog, registers ChangesKorean locale support
Estimated code review effort: 2 (Simple) | ~10 minutes Sequence Diagram(s)sequenceDiagram
participant User
participant PreferencesSettingsPage
participant i18n
participant koJson
User->>PreferencesSettingsPage: Select Korean
PreferencesSettingsPage->>i18n: Resolve ko locale
i18n->>koJson: Load Korean translations
koJson-->>i18n: Return translated strings
i18n-->>PreferencesSettingsPage: Render Korean UI
Possibly related PRs
Suggested reviewers: 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
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.
Korean (ko) translation PR body template
Motivation
This adds Korean (
ko) translation support — to help Korean-speaking users use thisopen-source project more comfortably in their own language.
한국 사람들의 오픈소스 이용에 도움이 되게 하기 위해서 한글화 작업을 하였습니다.
Changes
apps/desktop/src/i18n/locales/ko.json— a full Korean translation with 709 leaf keys: all 708 leaf keys fromen.jsontranslated 1:1, plus one additionalsettings.preferences.language.options.koself-name entry ("한국어"), mirroring howde/es/ja/zh-TWeach list all locale display names.koinapps/desktop/src/i18n/shared.ts: added the import, added it to theresourcesmap, and added it to thesupportedLocalestuple (whichresolveLocaleuses generically for both exact and base-language matching, so no other logic changes were needed).koSelectItemto the language switcher inapps/desktop/src/renderer/main/pages/settings/preferences/index.tsx, following the exact same pattern as the existingen/de/es/ja/zh-TWentries."ko": "한국어"line to thesettings.preferences.language.optionsblock inde.json,es.json,ja.json, andzh-TW.jsonso the language switcher shows the Korean display name consistently in every locale. No other lines in these four files were touched — each of them already has pre-existing translation gaps versusen.json(5 missing keys inde.json; 19 missing keys each ines.json/ja.json/zh-TW.json), which is out of scope for this PR.Testing
ko.jsonagainsten.json: confirmed all 708en.jsonkeys are present inko.jsonwith 0 missing and exactly 1 documented extra key (thekoself-name entry) — 709 total. Confirmed 0{{placeholder}}interpolation-token mismatches, 0 empty-string values, and 0 value-type mismatches (string vs array) betweenen.jsonandko.json.de/es/ja/zh-TWdiffs directly (viagit show): each file's diff is exactly one added line ("ko": "한국어"), nothing else changed. Independently confirmed their pre-existing gaps vs.en.jsonare exactly 5/19/19/19 missing keys respectively (unrelated pre-existing drift, not introduced or fixed by this PR).apps/desktop/src/i18n/shared.tsand confirmedkois correctly wired intoresources,supportedLocales, and (transitively, sinceresolveLocalecheckssupportedLocalesgenerically) locale resolution/fallback.settings/preferences/index.tsxand confirmed the newkoSelectItemmatches the existing pattern exactly.pnpm install(withgit submodule update --initfor thewhisper.cppsubmodule) andpnpm --filter @amical/types build— both succeeded, including the nativewhisper.nodeaddon build.tsc --noEmit,eslint, andprettier --checkon this branch and, for comparison, on a clean worktree of unmodified upstreammain:tsc --noEmit: same single pre-existing error on both (missing type declarations for@amical/whisper-wrapper), unrelated to this change.eslint: identical output on both — 270 warnings, 0 errors, byte-for-byte the same warning list.prettier --check: identical set of 26 flagged files on both, including the pre-existing formatting drift inde.json/ja.json/zh-TW.json(present before this PR);ko.jsonandes.jsonare prettier-clean.을/를,이/가conditional forms around{{variable}}interpolations) — found consistent, natural, formal-register (합니다체) Korean throughout, with proper nouns (Amical, Whisper, Discord) correctly left untranslated and macOS-convention terms (e.g. "손쉬운 사용" for Accessibility) used where appropriate.Summary by CodeRabbit