Fill the 408 entries that were missing from the Simplified Chinese
catalogue, bringing coverage of en.json from 72.5% to 100%
(1073 -> 1481 entries; 1480/1480 English keys now translated).
Files updated, per docs/adding_translations.md ("Commit the edited YAML
and all regenerated JSON and TypeScript resources together"):
- src/common/messagesYAML/zh.yaml - source catalogue
- src/common/messagesJson/zh.json - npm run i18n:yaml2json
- src/common/messages/combinedMessages.prod.ts
- npm run i18n:bakejson
The TypeScript resource matters: the release workflow runs
`npm run build`, which is only `node esbuild.config.mjs production` and
does NOT re-run `i18n:bake`. Since src/common/translation.ts imports
combinedMessages.prod.ts directly, a catalogue change that omits this
file would not reach the shipped main.js.
Verification
- No existing translation was modified: every key already present in
zh.json is byte-identical (0 changed, 0 removed).
- Placeholders checked string-for-string against the English source.
15 new entries contain ${...} or {HERE}; all match.
- combinedMessages.prod.ts regenerated with _tools/bakei18n.ts and
formatted with the project's Prettier config. The diff against main is
408 added `zh:` lines plus the expected bookkeeping, and no other
language changes.
- Terminology follows the existing catalogue (Vault -> 库,
Passphrase -> 密码短语, Setup URI -> 设置 URI, chunk -> 块).
Technical identifiers (URL, JWT, CouchDB, S3, TURN, IDB, P2P) are
intentionally left in English, matching current practice.
Two unrelated upstream issues, not addressed here
1. `dialog.yourLanguageAvailable` defines its placeholder as
`%{Display language}` while `$msg()` substitutes on `${...}`, so the
placeholder is never expanded and the literal text is shown in every
language.
2. The committed YAML catalogues appear stale relative to the JSON ones
(e.g. `en.yaml` lacks entries that `en.json` already contains, and
its wrapping differs from current tool output). This affects every
language and probably deserves a separate change.
Complete the Russian catalogue: coverage goes from 818/1480 to 1480/1480
keys. The remaining 24 entries stay in English on purpose: the language
names, the technology names, the documentation path, the product term
Setup URI, the credential labels which the catalogue already keeps in
English, and the strings which contain placeholders only.
Repair 42 Russian strings which had lost every ${...} placeholder, so
the user saw the variable names instead of the values. 13 of them had
also lost text: comparison tables, callout blocks, the options of the
rebuild dialogue, the generated key pair, and the QR code image.
Replace the Japanese full stop with a full stop in 16 strings.
The new entries follow the terminology of the current catalogue, and the
accepted translations keep their wording.
Commonlib compares this value against the raw "updated" literal to
distinguish automatic activation from a user-requested run, so
translating it changes behaviour rather than just the displayed text.
Keep the default raw and drop the "updated" catalogue entry; the
manually-requested reason stays translated.