Skip to content

i18n: complete Korean (ko) translations#385

Open
moduvoice wants to merge 1 commit into
keinsaasforever:mainfrom
moduvoice:i18n/complete-korean
Open

i18n: complete Korean (ko) translations#385
moduvoice wants to merge 1 commit into
keinsaasforever:mainfrom
moduvoice:i18n/complete-korean

Conversation

@moduvoice

Copy link
Copy Markdown

Motivation

This completes Korean (ko) translation coverage — to help Korean-speaking users use this
open-source project more comfortably in their own language. ko was already registered in
SUPPORTED_LOCALES and wired into the i18n loader, but messages/ko.json was missing a
large portion of keys (they were silently falling back to English via the deep-merge
fallback in src/i18n/request.ts).

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

Changes

  • messages/ko.json: translated all 277 keys that existed in messages/en.json but were
    missing from ko.json — primarily the Admin panel (Admin.*), the admin/self views of
    the user profile (User.Profile.admin.*, User.Profile.user.*, User.Profile.common.*),
    Agent.*, Auth.SignUp.*, Layout.*, MCP.*, and Workflow.* sections.
  • Removed one stale key, Chat.Tool.toolModeDescription, that existed in the old
    ko.json but no longer exists in en.json (it has been superseded by the three
    separate autoToolModeDescription / manualToolModeDescription /
    noneToolModeDescription keys, which were already translated).
  • No code changes — this is a translation-only, JSON-only change. ko was already present
    in SUPPORTED_LOCALES (src/lib/const.ts) and the dynamic-import + deep-merge fallback
    in src/i18n/request.ts needed no changes.

Testing

  • Key parity: flattened both en.json and ko.json to their leaf keys and diffed
    them — confirmed 746/746 keys present, 0 missing, 0 extra.
  • Placeholder integrity: extracted every {token} interpolation placeholder from each
    string and compared EN vs KO per key — all genuine variables ({name}, {role},
    {count}, {tokens}, {period}, etc.) are preserved. The only two "mismatches" a naive
    check flags come from the literal s inside the English ICU plural macro
    (model{count, plural, =1 {} other {s}}) in tokensAcross and totalCount — the Korean
    strings correctly collapse the plural macro into a single natural string since Korean
    nouns don't inflect for plural count. Verified this is valid by instantiating both
    translated strings with intl-messageformat (the library behind next-intl) at
    count=1 and count>1 — both parse and format correctly with no runtime errors.
  • Formatting/lint/types: ran pnpm exec biome format messages/ko.json and
    pnpm exec biome lint messages/ko.json (both clean, no changes needed) and
    pnpm check-types (tsc --noEmit, passes with no errors).
  • Manual spot-check: read through all 277 newly-translated keys against en.json,
    including the entire previously-missing Admin panel and User.Profile.admin/user
    subtrees, checking for mistranslation, register, and terminology consistency with the
    pre-existing 470 keys (e.g. 에이전트=Agent, 워크플로우=Workflow, MCP 서버, 역할=role,
    정지/정지 해제=ban/unban) — all consistent with established usage already present in the
    file before this change.

messages/ko.json was missing 277 of 746 keys (Admin panel, User
profile admin/user views, Agent, Auth sign-up, Layout, MCP, and
Workflow strings). Translated all missing keys into natural Korean,
matching the existing file's tone and terminology, and removed one
stale key no longer present in messages/en.json. Verified 1:1 key
parity with en.json and preserved all {placeholder} interpolation
tokens.
@vercel

vercel Bot commented Jul 11, 2026

Copy link
Copy Markdown

@moduvoice is attempting to deploy a commit to the cgoinglove's projects Team on Vercel.

A member of the Team first needs to authorize it.

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