Skip to content

i18n: add Korean (ko) translation - #2343

Merged
crimx merged 4 commits into
crimx:devfrom
moduvoice:i18n/add-korean
Jul 12, 2026
Merged

i18n: add Korean (ko) translation#2343
crimx merged 4 commits into
crimx:devfrom
moduvoice:i18n/add-korean

Conversation

@moduvoice

Copy link
Copy Markdown
Contributor

Motivation

This adds Korean (ko) translation support — to help Korean-speaking users use this
open-source project more comfortably in their own language.

한국 사람들의 오픈소스 이용에 도움이 되게 하기 위해서 한글화 작업을 하였습니다.

Changes

  • 836 keys translated across 54 files
  • New src/_locales/ko/*.ts — 8 typed locale files for the main extension UI (background, common, content, langcode, menus, options, popup, wordpage)
  • New src/_locales/manifest/ko/messages.json — Chrome/Firefox extension manifest strings (18/18 key parity with manifest/en)
  • New ko.ts locale files for 4 sync-manager services (ankiconnect, eudic, shanbay, webdav)
  • Added ko field to _locales.{json,ts} for all 34 dictionary providers
  • Wiring: LangCode/RawLocale types, i18next whitelist, .vscode/locales.schema.json, create-neutrino-config.js (moment.js locale), and the language <Select> in Options → General now include ko

Testing

  • npx tsc --noEmit passes with 0 errors, confirming type-level key parity for all typed locale files
  • Verified manifest/ko/messages.json has exact 18/18 key parity with manifest/en
  • Verified all 34 dictionary-provider locale files have a properly placed ko field (programmatic check: ko key count matches zh-TW key count in every file, all JSON valid)
  • Brand/service names (Saladict, YouGlish, Oxford, Anki Connect, DeepL, etc.) follow the same convention as existing locales — left as-is where English itself leaves them as-is

Add Korean translations across both i18n surfaces of the extension:

- Chrome Web Store manifest locale (src/_locales/manifest/ko)
- In-app UI locale, the 8 static namespaces used by options/popup/
  content pages (src/_locales/ko/*.ts): background, common, content,
  langcode (full ~140-language name list), menus, options, popup,
  wordpage
- Sync service locales (Anki Connect, Eudic, Shanbay, WebDAV)
- Korean translations added to all 34 per-dictionary locale files
  and the shared machine-translation locale defaults

Also wires 'ko' into the language whitelist/type used by the i18next
loaders (src/_helpers/i18n.ts, src/background/i18n-loader.ts), the
app-config LangCode type and browser-UI-language auto-detection
(src/app-config/index.ts), the Options page language selector
(General.tsx), the VS Code locale JSON schema, and the moment.js
locale-keep list in the webpack config -- mirroring exactly how
zh-CN/zh-TW were previously registered, so Korean is fully wired
end-to-end rather than just adding locale files.

Verified with `tsc --noEmit` and `eslint` (both clean).

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds Korean (ko) localization across the extension UI and dictionary/provider labels, and wires ko through the app’s i18n/type/build plumbing so Korean can be selected and loaded consistently.

Changes:

  • Added new Korean locale namespaces for core UI and sync-manager services, plus manifest messages.json.
  • Added ko entries across dictionary/provider locale files (JSON and typed machine-locales).
  • Updated language wiring: LangCode/RawLocale types, i18next whitelist, moment.js locale keep-list, VS Code locales schema, and the Options → General language selector.

Reviewed changes

Copilot reviewed 54 out of 54 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
src/options/components/Entries/General.tsx Adds Korean option to the UI language selector.
src/components/dictionaries/zdic/_locales.json Adds ko strings for ZDic provider name/options/helps.
src/components/dictionaries/youdaotrans/_locales.ts Adds ko provider display name for Youdao Translate.
src/components/dictionaries/youdao/_locales.json Adds ko provider name/options strings.
src/components/dictionaries/wikipedia/_locales.json Adds ko provider name/options strings.
src/components/dictionaries/weblioejje/_locales.json Adds ko provider name.
src/components/dictionaries/weblio/_locales.json Adds ko provider name.
src/components/dictionaries/volc/_locales.ts Adds ko provider display name for Volcengine Translate.
src/components/dictionaries/vocabulary/_locales.json Adds ko provider name.
src/components/dictionaries/urban/_locales.json Adds ko provider name/options strings.
src/components/dictionaries/tencent/_locales.ts Adds ko provider display name for Tencent Translate.
src/components/dictionaries/shanbay/_locales.json Adds ko provider name/options strings.
src/components/dictionaries/renren/_locales.json Adds ko provider name.
src/components/dictionaries/oaldict/_locales.json Adds ko provider name.
src/components/dictionaries/niutrans/_locales.ts Adds ko provider display name for NiuTrans.
src/components/dictionaries/naver/_locales.json Adds ko provider name/options strings.
src/components/dictionaries/mojidict/_locales.json Adds ko provider name.
src/components/dictionaries/merriamwebster/_locales.json Adds ko provider name/options strings.
src/components/dictionaries/longman/_locales.json Adds ko provider name/options strings.
src/components/dictionaries/locales.ts Extends machine-locales typing + adds Korean translations for common machine options/helps.
src/components/dictionaries/liangan/_locales.json Adds ko provider name/options/helps strings.
src/components/dictionaries/hjdict/_locales.json Adds ko provider name/options strings.
src/components/dictionaries/guoyu/_locales.json Adds ko provider name/options/helps strings.
src/components/dictionaries/google/_locales.ts Adds ko provider name/options/helps strings for Google Translate.
src/components/dictionaries/eudic/_locales.json Adds ko provider name/options strings.
src/components/dictionaries/etymonline/_locales.json Adds ko provider name/options strings.
src/components/dictionaries/deeplx/_locales.ts Adds ko provider display name for DeepLX.
src/components/dictionaries/deepl/_locales.ts Adds ko provider display name for DeepL.
src/components/dictionaries/cobuild/_locales.json Adds ko provider name/options/helps strings.
src/components/dictionaries/cambridge/_locales.json Adds ko provider name/options strings.
src/components/dictionaries/caiyun/_locales.ts Adds ko provider display name for LingoCloud.
src/components/dictionaries/bingtrans/_locales.ts Adds ko provider display name for Bing Translate.
src/components/dictionaries/bing/_locales.json Adds ko provider name/options strings.
src/components/dictionaries/baidu/_locales.ts Adds ko provider display name for Baidu Translate.
src/components/dictionaries/alibaba/_locales.ts Adds ko provider display name for Alibaba Translate.
src/components/dictionaries/ahdict/_locales.json Adds ko provider name/options strings.
src/background/sync-manager/services/webdav/_locales/ko.ts Adds Korean locale for WebDAV sync-manager UI/errors.
src/background/sync-manager/services/shanbay/_locales/ko.ts Adds Korean locale for Shanbay sync-manager UI/errors.
src/background/sync-manager/services/eudic/_locales/ko.ts Adds Korean locale for Eudic sync-manager UI/errors.
src/background/sync-manager/services/ankiconnect/_locales/ko.ts Adds Korean locale for AnkiConnect sync-manager UI/errors.
src/background/i18n-loader.ts Adds ko to i18next language whitelist for background i18n.
src/app-config/index.ts Extends LangCode and default UI-language detection to include ko.
src/_locales/manifest/ko/messages.json Adds Korean Chrome/Firefox manifest strings.
src/_locales/ko/wordpage.ts Adds Korean UI strings for WordPage.
src/_locales/ko/popup.ts Adds Korean UI strings for popup panel.
src/_locales/ko/options.ts Adds Korean UI strings for Options pages.
src/_locales/ko/menus.ts Adds Korean UI strings for context/toolbar menus.
src/_locales/ko/langcode.ts Adds Korean labels for language-code names.
src/_locales/ko/content.ts Adds Korean UI strings for content-side UI.
src/_locales/ko/common.ts Adds Korean shared/common UI strings.
src/_locales/ko/background.ts Adds Korean background notification strings.
src/_helpers/i18n.ts Extends LangCode/RawLocale types and adds ko to i18next whitelist.
scripts/create-neutrino-config.js Ensures Moment.js ko locale is kept in the build.
.vscode/locales.schema.json Updates VS Code locales schema to require/allow ko.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread src/app-config/index.ts Outdated
Comment thread src/components/dictionaries/locales.ts Outdated
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 54 out of 54 changed files in this pull request and generated 1 comment.

Comment thread src/app-config/index.ts Outdated
@crimx

crimx commented Jul 12, 2026

Copy link
Copy Markdown
Owner

Thanks!

@crimx
crimx merged commit a7bb6af into crimx:dev Jul 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.

3 participants