Skip to content

feat(i18n): added korean locale#21617

Closed
Jaejuna wants to merge 3 commits into
openclaw:mainfrom
Jaejuna:feat/i18n-korean-locale
Closed

feat(i18n): added korean locale#21617
Jaejuna wants to merge 3 commits into
openclaw:mainfrom
Jaejuna:feat/i18n-korean-locale

Conversation

@Jaejuna

@Jaejuna Jaejuna commented Feb 20, 2026

Copy link
Copy Markdown

Summary

  • Problem: Korean (ko-KR) was listed in SUPPORTED_LOCALES and the language selector in the UI, but no translation file existed
  • Why it matters: Korean is one of the most-requested languages in Internationalization (i18n) & Localization Support #3460
  • What changed: Added ko-KR.ts with full Korean translations; registered ko-KR in the setLocale dynamic import chain; added koKR display name entry to all existing locale files (en, zh-CN, zh-TW, pt-BR)
  • What did NOT change: No changes to i18n architecture, translation loading mechanism, locale detection logic, or any non-i18n code

Change Type

  • Bug fix
  • Feature
  • Refactor
  • Docs
  • Security hardening
  • Chore/infra

Scope

  • Gateway / orchestration
  • Skills / tool execution
  • Auth / tokens
  • Memory / storage
  • Integrations
  • API / contracts
  • UI / DX
  • CI/CD / infra

Linked Issue/PR

User-visible / Behavior Changes

  • Korean (한국어) is now available in the language selector in the Overview tab
  • Users with navigator.language starting with ko will now have Korean auto-detected on first visit instead of falling back to English

Security Impact

  • New permissions/capabilities? No
  • Secrets/tokens handling changed? No
  • New/changed network calls? No
  • Command/tool execution surface changed? No
  • Data access scope changed? No

Repro + Verification

Environment

  • OS: macOS Sequoia (Apple Silicon)
  • Runtime/container: Node.js 22, pnpm
  • Model/provider: N/A (UI-only changes)
  • Integration/channel: Control UI
  • Relevant config: N/A

Steps

  1. Open the Control UI and navigate to the Overview tab
  2. Open the language selector and select 한국어
  3. Verify all UI labels switch to Korean
  4. Reload the page and verify Korean is restored from localStorage

Expected

  • All translated strings render in Korean
  • Language preference persists across reloads

Actual

  • Confirmed above behavior

Evidence

  • Failing test/log before + passing after

  • Trace/log snippets

  • Screenshot/recording

  • Perf numbers (if relevant)

  • Build passes: pnpm build completes successfully (8241ms, 0 errors)

Human Verification

  • Verified scenarios: Build passes, all locale files have consistent koKR key structure, translation keys match en.ts exactly
  • Edge cases checked: TypeScript enforces that ko-KR.ts has the same keys as TranslationMap — missing keys would cause a build error, so coverage is complete by construction

Translator note: Translations were authored by a native Korean speaker working as a localization engineer at Nexon. Technical terms (Gateway, WebSocket, Skills, CLI, Canvas, Tailscale, Cron, etc.) are intentionally kept in English per the convention established in #18508.

스크린샷 2026-02-20 14 00 08

Compatibility / Migration

  • Backward compatible? Yes
  • Config/env changes? No
  • Migration needed? No

Failure Recovery

  • How to revert: Remove ko-KR.ts, revert koKR entries from all locale files, remove ko-KR branch from setLocale
  • Files to restore: ui/src/i18n/locales/ko-KR.ts, ui/src/i18n/locales/en.ts, zh-CN.ts, zh-TW.ts, pt-BR.ts, ui/src/i18n/lib/translate.ts

Risks and Mitigations

  • Risk: Translation accuracy for technical UI strings
  • Mitigation: Native speaker authorship; technical terms kept in English; community can refine via follow-up PRs

Greptile Summary

Added complete Korean (ko-KR) locale support to the Control UI. Registered ko-KR in SUPPORTED_LOCALES, added language detection for Korean browser locales, and implemented dynamic import loading. All existing locale files updated with the koKR display name entry.

  • Added complete Korean translation file with 100+ strings covering navigation, tabs, overview, chat, and common UI elements
  • Technical terms (Gateway, WebSocket, Skills, Cron, etc.) correctly kept in English per established convention
  • Translation keys match English structure exactly, ensuring type safety
  • Added language selector dropdown option in Overview tab
  • Auto-detection works correctly for users with Korean browser locale (navigator.language.startsWith("ko"))

One typo found in Korean translation that should be corrected before merge.

Confidence Score: 4/5

  • This PR is safe to merge after fixing the Korean translation typo
  • PR follows established i18n patterns correctly, with proper type definitions, locale registration, and dynamic imports. Structure is consistent with existing translations. One typo in Korean text prevents full confidence score, but it's a simple fix. No logical errors or architectural issues.
  • ui/src/i18n/locales/ko-KR.ts requires a one-word typo fix before merge

Last reviewed commit: 8c4d504

(2/5) Greptile learns from your feedback when you react with thumbs up/down!

- Add ko-KR.ts with full Korean translations
- Add koKR language entry to all locale files (en, zh-CN, zh-TW, pt-BR)
- Register ko-KR in SUPPORTED_LOCALES and setLocale dynamic import
- Add browser language auto-detection for Korean (navigator.language startsWith 'ko')

Relates to issue openclaw#3460
Related to pr openclaw#18508

@greptile-apps greptile-apps Bot 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.

8 files reviewed, 1 comment

Edit Code Review Agent Settings | Greptile

"{command}로 토큰이 포함된 URL을 다시 복사하거나 토큰을 업데이트한 후 연결을 클릭하세요.",
},
insecure: {
hint: "이 페이지는 HTTP이므로 브라우저가 기기 식별을 차단합니다. HTTPS(Tailscale Serve)를 사용하거나 Gateway 호스트에서 {url}을 직접 여세요.",

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.

typo: "직접 여세요" appears incomplete - "여세요" is not a valid Korean verb

Suggested change
hint: "이 페이지는 HTTP이므로 브라우저가 기기 식별을 차단합니다. HTTPS(Tailscale Serve)를 사용하거나 Gateway 호스트에서 {url}을 직접 여세요.",
hint: "이 페이지는 HTTP이므로 브라우저가 기기 식별을 차단합니다. HTTPS(Tailscale Serve)를 사용하거나 Gateway 호스트에서 {url}을 직접 열어보세요.",
Prompt To Fix With AI
This is a comment left during a code review.
Path: ui/src/i18n/locales/ko-KR.ts
Line: 99

Comment:
typo: "직접 여세요" appears incomplete - "여세요" is not a valid Korean verb

```suggestion
      hint: "이 페이지는 HTTP이므로 브라우저가 기기 식별을 차단합니다. HTTPS(Tailscale Serve)를 사용하거나 Gateway 호스트에서 {url}을 직접 열어보세요.",
```

How can I resolve this? If you propose a fix, please make it concise.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

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

It's not a typo. My translation conveys the full meaning more concisely and effectively.

@Jaejuna Jaejuna changed the title Feat/i18n korean locale fix(i18n): added korean locale Feb 20, 2026
@Jaejuna Jaejuna changed the title fix(i18n): added korean locale feat(i18n): added korean locale Feb 20, 2026
@openclaw-barnacle

Copy link
Copy Markdown

This pull request has been automatically marked as stale due to inactivity.
Please add updates or it will be closed.

@openclaw-barnacle openclaw-barnacle Bot added the stale Marked as stale due to inactivity label Feb 28, 2026
@thewilloftheshadow

Copy link
Copy Markdown
Member

See #3460

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

app: web-ui App: web-ui size: S stale Marked as stale due to inactivity

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants