mirror of
https://github.com/vrtmrz/obsidian-livesync.git
synced 2026-08-29 23:07:08 +00:00
The zh-tw catalogue was the weakest of the ten supported locales at 380 of
1450 keys (26%), well behind zh (75%) and ja (57%). Users who select
繁體中文 saw English for most of the interface.
This does not attempt full parity. It closes the gap for the 190 keys that
`$msg()` calls in `src/` actually resolve through the catalogue (zh-tw had
no entry for any of them), plus the 7 `K.*` keyword fragments that
`expandKeywords()` substitutes into `%{...}` references at build time
(zh-tw had none of these either, so any zh-tw message referencing `%{Peer}`
etc. would have shown the raw token on screen — the same defect currently
affecting `he`).
- 186 of the 190 code-referenced keys are translated. The remaining 4 are
left as-is because their English value is not translatable prose:
`moduleMigration.docUri` and `obsidianLiveSyncSettingTab.linkTroubleshooting`
are a URL and a doc path, `obsidianLiveSyncSettingTab.logServerConfigurationCheck`'s
English value is the key name itself, and `moduleLiveSyncMain.logPluginVersion`
is a version-number template.
- Two pre-existing entries are corrected for internal consistency: `Bucket
Name` (儲存桶→儲存庫) and `Peer-to-Peer Synchronisation` (點對點同步→
Peer-to-Peer 同步), the latter matching the other three occurrences of
"Peer-to-Peer" already left untranslated in this same file.
- Wording follows docs/terms.md and the existing zh-tw register: `Setup
URI`, `Vault`, `chunk(s)`, `Hatch`, and `Peer-to-Peer` stay untranslated
as proper nouns, matching how the rest of the file already treats them.
- `${...}` placeholders and `%{...}` keyword references are kept
byte-identical to the English source; verified programmatically against
all 573 zh-tw entries, not just the new ones.
- Regenerated `messagesJson/zh-tw.json` and `combinedMessages.prod.ts`
through the documented `i18n:bake` pipeline; no other language's entries
changed.
Coverage: 380/1450 (26.2%) -> 573/1450 (39.5%).
Verified with tsc-check, tsc-check:apps, lint, lint:community,
lint:community:tools, svelte-check, check:compatibility, and test:unit
(604 tests, 86 files) — all pass.
Not in scope, left for follow-up: the ~137 Commonlib-owned setting
labels/descriptions never reach any translator because `getConfig()` call
sites in SettingDialogue omit the `translate` argument; German is staged
in the catalogue but never imported by `combinedMessages.dev.ts`; Hebrew
keyword references are never expanded by `expandKeywords()`. None of these
are specific to zh-tw and none are touched here.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>