Skip to content

Complete and correct the Korean translations - #79

Open
motolies wants to merge 1 commit into
vrtmrz:mainfrom
motolies:complete-korean-translations
Open

Complete and correct the Korean translations#79
motolies wants to merge 1 commit into
vrtmrz:mainfrom
motolies:complete-korean-translations

Conversation

@motolies

Copy link
Copy Markdown

Korean coverage was 796 of 1115 keys (71%), so a large part of the UI fell back to English. Alongside the missing entries, the existing translations carried a few defects that were visible to users.

Fixes:

  • Three messages had lost the $ from their placeholders, leaving a literal {origin}, {org} and {from}->{to} on screen, because $msg() only substitutes ${...}.
  • dialog.yourLanguageAvailable referenced %{Display language}, but the key is Display Language, so the raw token was shown. Corrected to match ja.
  • Sixteen onboarding messages ended with the Japanese full stop .
  • Four messages hard-coded a particle after a variable (${measuredSize}가), which is ungrammatical for values ending in a consonant. They now use the paired form 이(가), 을(를), (으)로.

Terminology is now consistent with the Obsidian Korean UI and with the definitions in docs/terms.md:

  • vault is 보관함, device is 기기, status bar is 상태 표시줄.
  • chunk is 청크 everywhere; the Eden settings had rendered it as 변경 기록 ("change record"), which is not what a chunk is.
  • Compaction is 압축 정리, separating it from Data Compression (데이터 압축), which had shared the same word.
  • HTTP Origin is 출처; it had been 원점, the geometric origin.
  • Six English strings that had mapped to two different Korean strings each are now unified.

The remaining 319 keys are translated, including the setup wizard outro, the insecure-chunk and v0.25.6 recovery dialogues, and the database adapter migration messages.

Verified with _tools/checkI18nCoverage.ts (ko: 1115/1115, 0 missing), tsc, and a dev build. No other locale is touched: all 593 changed lines in combinedMessages.prod.ts are ko entries.

Claude-Session: https://claude.ai/code/session_014RPb7ZBdhNU5Jqq3XsUCxx

Korean coverage was 796 of 1115 keys (71%), so a large part of the UI fell
back to English. Alongside the missing entries, the existing translations
carried a few defects that were visible to users.

Fixes:

- Three messages had lost the `$` from their placeholders, leaving a literal
  `{origin}`, `{org}` and `{from}->{to}` on screen, because `$msg()` only
  substitutes `${...}`.
- `dialog.yourLanguageAvailable` referenced `%{Display language}`, but the key
  is `Display Language`, so the raw token was shown. Corrected to match ja.
- Sixteen onboarding messages ended with the Japanese full stop `。`.
- Four messages hard-coded a particle after a variable (`${measuredSize}가`),
  which is ungrammatical for values ending in a consonant. They now use the
  paired form `이(가)`, `을(를)`, `(으)로`.

Terminology is now consistent with the Obsidian Korean UI and with the
definitions in docs/terms.md:

- `vault` is 보관함, `device` is 기기, `status bar` is 상태 표시줄.
- `chunk` is 청크 everywhere; the Eden settings had rendered it as 변경 기록
  ("change record"), which is not what a chunk is.
- `Compaction` is 압축 정리, separating it from `Data Compression` (데이터 압축),
  which had shared the same word.
- HTTP `Origin` is 출처; it had been 원점, the geometric origin.
- Six English strings that had mapped to two different Korean strings each are
  now unified.

The remaining 319 keys are translated, including the setup wizard outro, the
insecure-chunk and v0.25.6 recovery dialogues, and the database adapter
migration messages.

Verified with _tools/checkI18nCoverage.ts (ko: 1115/1115, 0 missing), tsc, and
a dev build. No other locale is touched: all 593 changed lines in
combinedMessages.prod.ts are `ko` entries.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014RPb7ZBdhNU5Jqq3XsUCxx
@vrtmrz

vrtmrz commented Jul 29, 2026

Copy link
Copy Markdown
Owner

Thank you very much for this contribution.

While preparing v1.0.0, we changed the project boundary: application translations and dialogues now live in the main Self-hosted LiveSync repository, while Commonlib keeps its canonical English service messages and translation-injection boundary. This should make future contributions easier to locate, understand, and merge.

I am sorry to ask for additional work after you prepared this PR. Would you be willing to open a new PR against Self-hosted LiveSync using the current structure? Thank you again for your contribution and patience.

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