Skip to content

feat(i18n): add Korean (ko) translation#268

Open
moduvoice wants to merge 2 commits into
msgbyte:masterfrom
moduvoice:feat/i18n-korean
Open

feat(i18n): add Korean (ko) translation#268
moduvoice wants to merge 2 commits into
msgbyte:masterfrom
moduvoice:feat/i18n-korean

Conversation

@moduvoice

@moduvoice moduvoice commented Jul 8, 2026

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

  • src/client/public/locales/ko/translation.json: full Korean translation of the app UI (1608 keys, translated from all 1612 English keys — the 4 _one plural-form keys are intentionally omitted, matching the existing convention for languages without singular/plural distinction such as ja-JP, zh-CN, and id-ID).
  • src/client/public/locales/ko/flag.png: Korean flag icon (70x47 PNG, same format as the other locale folders), generated from the flag-icons project (MIT licensed) to match the existing asset convention.
  • src/client/utils/i18n.ts: registered ko (한국어) in the languages list.
  • src/client/i18next-toolkit.config.cjs: registered ko in the locales list.
  • website/docusaurus.config.ts: registered ko in the docs site's i18n.locales list.
  • website/i18n/ko/**: Korean translation of the docs website's Docusaurus UI chrome (theme strings, navbar, footer, sidebar category labels, blog options) — this covers the UI framework text only, not the doc page content itself.

Testing

  • Verified src/client/public/locales/ko/translation.json is valid JSON and parses with both Python and Node.
  • Verified key-set parity: ko keys == en keys minus the 4 _one plural keys (1608 == 1612 - 4), with 0 missing/extra keys.
  • Verified every {{placeholder}} token and the one <1></1> interpolation tag in the source strings is preserved unchanged in the Korean translation.
  • Spot-checked ~60 randomly sampled entries plus all country-name and domain-term (Monitor/Survey/Telemetry/Workspace/Gateway/Worker/Warehouse/etc.) translations for naturalness and terminology consistency.
  • Verified all new website/i18n/ko/** files are valid JSON with key parity against their en counterparts (e.g. code.json: 78/78).

Summary by CodeRabbit

  • New Features
    • Enabled Korean (ko) as a supported language in both the app and the documentation site.
    • Added Korean language selection to the UI.
  • Documentation
    • Added/updated Korean translations for site UI elements, including navbar/footer, docs versioning and sidebars, blog labels, error/retry text, and accessibility strings.
    • Added Korean blog plugin localization and general Korean translation resources across the site theme.

Adds full Korean translation for the app (src/client, 1608 keys,
matching the plural-less convention used by ja-JP/zh-CN/id-ID) and
for the docs website's UI chrome (theme/navbar/footer/sidebar/blog
strings), and registers `ko` in both locale lists.
@coderabbitai

coderabbitai Bot commented Jul 8, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 4c9a25ea-53e5-4bbc-a987-2667481733df

📥 Commits

Reviewing files that changed from the base of the PR and between a8a3b2d and 7842a1d.

📒 Files selected for processing (1)
  • src/client/public/locales/ko/translation.json
🚧 Files skipped from review as they are similar to previous changes (1)
  • src/client/public/locales/ko/translation.json

📝 Walkthrough

Walkthrough

This PR adds Korean locale support across the client app and Docusaurus website by extending locale configuration and adding Korean translation resources.

Changes

Korean Locale Support

Layer / File(s) Summary
Client i18n configuration and translations
src/client/i18next-toolkit.config.cjs, src/client/utils/i18n.ts, src/client/public/locales/ko/translation.json
Adds ko to the client-supported locales and languages list, and replaces the Korean client translation catalog.
Website Docusaurus i18n configuration and resources
website/docusaurus.config.ts, website/i18n/ko/*
Adds ko to the Docusaurus locale list and introduces Korean navbar, footer, blog, docs, and code translation files.

Estimated code review effort: 1 (Trivial) | ~5 minutes

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately summarizes the main change: adding Korean (ko) translation support.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@src/client/public/locales/ko/translation.json`:
- Line 86: The Korean translation for k1e4399ab is incorrect in the locale JSON.
Update the existing entry in the translation file so the value accurately
renders “Too Early” in Korean, and keep the same key while replacing the current
malformed text with the correct translation.
- Around line 1-1610: The Korean translation locale is missing singular
pluralization entries, causing runtime fallback for those strings. Add the
missing keys k34d05d70_one, k6245e2e0_one, k8f89f13d_one, and kcbb3a64f_one in
translation.json, matching the existing plural patterns and keeping the same
placeholder variables as the corresponding _other entries.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 5694a23e-23f5-45a3-8364-27fded29889b

📥 Commits

Reviewing files that changed from the base of the PR and between 191a38d and a8a3b2d.

⛔ Files ignored due to path filters (1)
  • src/client/public/locales/ko/flag.png is excluded by !**/*.png
📒 Files selected for processing (9)
  • src/client/i18next-toolkit.config.cjs
  • src/client/public/locales/ko/translation.json
  • src/client/utils/i18n.ts
  • website/docusaurus.config.ts
  • website/i18n/ko/code.json
  • website/i18n/ko/docusaurus-plugin-content-blog/options.json
  • website/i18n/ko/docusaurus-plugin-content-docs/current.json
  • website/i18n/ko/docusaurus-theme-classic/footer.json
  • website/i18n/ko/docusaurus-theme-classic/navbar.json

Comment thread src/client/public/locales/ko/translation.json
Comment thread src/client/public/locales/ko/translation.json Outdated
Addresses CodeRabbit review: k1e4399ab was garbled, and 4 keys
were missing _one plural variants (i18next requires both one/other
even when the target language has no grammatical plural).
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