Skip to content

translation: add Korean (ko) locale - #3633

Open
hankimis wants to merge 1 commit into
teableio:developfrom
hankimis:translation/korean-locale
Open

translation: add Korean (ko) locale#3633
hankimis wants to merge 1 commit into
teableio:developfrom
hankimis:translation/korean-locale

Conversation

@hankimis

Copy link
Copy Markdown

What

Adds a complete Korean (ko) translation for all 14 locale files — 4,232 keys — and registers ko as a selectable language.

Korean was the only major East Asian language missing (zh and ja are both present), and there is currently no partial ko folder to conflict with.

Files

  • packages/common-i18n/src/locales/ko/*.json — the translation (14 files)
  • apps/nextjs-app/next-i18next.config.js'ko' added to i18n.locales
  • apps/nextjs-app/src/lib/app-proxy.ts'ko' added to locales
  • apps/nextjs-app/src/features/app/components/LanguagePicker.tsx{ key: 'ko', title: '한국어' }

Those three files are the only places in the repo that carry the locale list (verified by grepping for an existing locale code). crowdin.yml maps with %two_letters_code%, so the folder name ko is correct.

Verification

Checked mechanically against the English source, for every file:

  • key sets are identical — 0 missing, 0 extra
  • the set of {{interpolations}} in each string matches the source string
  • <Tag> markup and $t(...) references match the source
  • key order follows the English files, so the diff reviews line-by-line
  • serialization (2-space indent, trailing newline) is byte-identical in style to the existing locale files

Intentionally left untranslated: formula example strings, function names (SUM, ARRAYJOIN, …), error identifiers (ForeignKeyNotFound, …), and product names (Teable, Vercel, AI Gateway, OpenRouter, Ollama).

Terminology

Kept consistent throughout:

en ko
base 베이스
space 스페이스
table 테이블
record 레코드
field 필드
view
rollup 집계
lookup 조회
link 연결
collaborator 협업자
attachment 첨부파일
automation 자동화
trash 휴지통

Sentences addressed to the user use polite form (존댓말); labels and buttons use noun form, matching Korean UI convention.

Context

Translated while self-hosting Teable for a Korean team, so the high-traffic surfaces (grid, field editors, view config, space/base management) were read in context rather than translated key-by-key in isolation. Happy to adjust any wording.

Adds a complete Korean translation of all 14 locale files
(4,232 keys) and registers `ko` alongside the existing languages.

Verified mechanically against the English source:

- key sets are identical (0 missing, 0 extra) in every file
- the set of `{{interpolations}}` in each string matches the source
- `<Tag>` markup and `$t(...)` references match the source
- formula `example` strings, function names (SUM, ARRAYJOIN, ...) and
  error identifiers (ForeignKeyNotFound, ...) are left untranslated
- key order follows the English files, and the serialization is
  byte-identical in style to the existing locale files

Terminology was kept consistent throughout: 베이스 (base), 스페이스 (space),
테이블 (table), 레코드 (record), 필드 (field), 뷰 (view), 집계 (rollup),
조회 (lookup), 연결 (link), 협업자 (collaborator), 첨부파일 (attachment),
자동화 (automation), 휴지통 (trash).

Besides the locale files, `ko` is added in the three places that hold the
locale list: next-i18next.config.js, src/lib/app-proxy.ts and the
LanguagePicker component.
@CLAassistant

Copy link
Copy Markdown

CLA assistant check
Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.
You have signed the CLA already but the status is still pending? Let us recheck 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.

2 participants