#22332: i18n: add Korean (ko-KR) locale support
docs
app: web-ui
scripts
size: S
Cluster:
Internationalization Enhancements
## Summary
- Add Korean (ko-KR) as a new UI locale with full translation of all strings
- Register `ko-KR` in the `Locale` type, `SUPPORTED_LOCALES`, auto-detection (`navigator.language`), and lazy-load import
- Add `languages.koKR` key to all existing locale files (en, zh-CN, zh-TW, pt-BR)
- Add Korean option to the language selector dropdown in the Overview page
## Changed files
| File | Change |
|------|--------|
| `ui/src/i18n/lib/types.ts` | Add `"ko-KR"` to `Locale` union |
| `ui/src/i18n/lib/translate.ts` | Register in `SUPPORTED_LOCALES`, auto-detect, lazy-load import |
| `ui/src/i18n/locales/ko-KR.ts` | **New** — full Korean translation data |
| `ui/src/i18n/locales/en.ts` | Add `languages.koKR` |
| `ui/src/i18n/locales/zh-CN.ts` | Add `languages.koKR` |
| `ui/src/i18n/locales/zh-TW.ts` | Add `languages.koKR` |
| `ui/src/i18n/locales/pt-BR.ts` | Add `languages.koKR` |
| `ui/src/ui/views/overview.ts` | Add `<option value="ko-KR">` to language selector |
## Test plan
- [x] TypeScript compiles with no new errors
- [x] Lint passes (biome)
- [ ] Manually verify Korean locale renders correctly in the UI
🤖 Generated with [Claude Code](https://claude.com/claude-code)
<!-- greptile_comment -->
<h3>Greptile Summary</h3>
Adds comprehensive Korean (`ko-KR`) locale support to the OpenClaw UI with complete translations for all interface strings.
The implementation follows the established i18n pattern:
- Type definition updated in `types.ts` to include `"ko-KR"` in the `Locale` union
- Registered in `SUPPORTED_LOCALES` array and lazy-load imports in `translate.ts`
- Auto-detection logic added for Korean browser language (`navigator.language`)
- Full translation file created with all required keys matching the English structure
- All existing locale files updated with the `languages.koKR` key for language selector consistency
- Language selector dropdown in Overview page includes the new Korean option
The Korean translation file structure mirrors existing locales and covers all sections: `common`, `nav`, `tabs`, `subtitles`, `overview`, `chat`, and `languages`.
<h3>Confidence Score: 5/5</h3>
- This PR is safe to merge with minimal risk
- The changes are purely additive (new locale support) with no modifications to existing logic. The implementation correctly follows the established i18n pattern used by other locales (zh-CN, zh-TW, pt-BR). All integration points are properly updated (types, imports, auto-detection, lazy-loading, UI dropdown), and the Korean translation file has complete coverage of all required keys matching the English structure.
- No files require special attention
<sub>Last reviewed commit: db0af7d</sub>
<!-- greptile_other_comments_section -->
<sub>(2/5) Greptile learns from your feedback when you react with thumbs up/down!</sub>
<!-- /greptile_comment -->
Most Similar PRs
#22570: feat(i18n): add Korean (ko) locale to Control UI
by hoonsikim · 2026-02-21
92.6%
#21617: feat(i18n): added korean locale
by Jaejuna · 2026-02-20
91.5%
#10657: feat(ui): add i18n support with English, Chinese, and Portuguese
by SalimBinYousuf1 · 2026-02-06
81.5%
#13622: feat(i18n): add complete multi-language support (EN, TR, FR, DE)
by vaur94 · 2026-02-10
81.3%
#10586: feat: Add Chinese (zh-CN) localization support
by Maxsong-0 · 2026-02-06
81.1%
#9490: Add Internationalization (i18n) Support
by luuman · 2026-02-05
80.9%
#21988: feat(i18n): added Thai (th) locale
by samithiwat · 2026-02-20
78.9%
#22165: feat(i18n): translate hardcoded button labels to all 4 locales
by NikolaVujovic1988 · 2026-02-20
78.1%
#20905: i18n: add bulgarian to openclaw
by Lutherwaves · 2026-02-19
77.6%
#19689: feat(i18n): added Filipino (fil) locale
by warengonzaga · 2026-02-18
75.9%