- Use a plain emoji glyph for the password visibility toggle instead
of embedded SVG paths, matching the same pragmatic approach already
used for the browser build's menu icons in this codebase.
- Scope the wider label width to the E2EE dialogue instead of
changing it for every InputRow in every Svelte dialogue.
- Extend the existing CouchDB manual setup E2E workflow to assert the
passphrase and Obfuscate Properties fields are hidden until
encryption is enabled, then appear, and that the passphrase value
survives toggling its visibility.
- Only show the passphrase and "Obfuscate Properties" controls once
end-to-end encryption is enabled, instead of leaving them visible
but disabled.
- Replace the password show/hide checkbox with an icon toggle button.
- Let translated labels wrap to their content instead of being
clipped into a fixed-width column (this clipped longer translated
labels, e.g. in German and Spanish).
- Scope the onboarding invitation link's 44px touch-target padding to
mobile, so on desktop it renders as a normal inline link instead of
a stray, oddly-padded button.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Commonlib's `getConfig(key, translate?)` and `getConfName(key, translate?)`
default `translate` to `englishMessageTranslator`, and this plug-in never
passed the second argument. Every automatically wired setting therefore
rendered its name and description in English, whatever `displayLanguage` was
set to. Commonlib's own Config Doctor already threads a translator through
`getConfName`, so this only restores the argument which was missing here.
`src/modules/features/SettingDialogue/settingConstants.ts` now re-exports the
names it supplies explicitly and adds thin `getConfig` and `getConfName`
wrappers which default the translator to `translateLiveSyncMessage`. That
reaches all three existing call sites, and therefore the 102 `setAuto` and
`autoWire*` calls across the setting panes, the setup-wizard configuration
summaries, and the externally-modified-setting prompt. Of the 225 distinct
name and description strings in the two manifest tables, 160 are already
catalogue keys with translations; the remaining 65 are not catalogue keys and
pass through unchanged.
`ModuleResolveMismatchedTweaks` used `confName()`, which accepts no
translator, so it gains a local `localisedConfName()` instead. Swapping in
`getConfName()` there would have silently dropped the `statusDisplay()`
suffix, replaced the empty-string fallback for an unknown key with
`${key} (No info)`, and introduced `SettingInformation` as a second source.
English output is unchanged: every catalogue key which contains a space has a
value identical to the key itself, so translating under the default language
is idempotent.
Verified with `npm run check`, `npm run test:unit`, and `npm run build`.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
- Unify 資料庫適配器 -> 資料庫轉接器 across 6 entries so the database
adapter setting uses one term throughout the catalogue.
- Drop the calqued "透過⋯⋯來⋯⋯" construction in 3 entries (Testing-only
conflict resolution, the P2P replicator description, and the
duplicated garbage-collection cleanup description); the sentences
read the same without the borrowed English "by X to Y" shape.
- Rename the Eden-chunk "Incubate" feature's label from 孵化 (hatch) to
暫存 (temporarily store) across 7 entries, matching the wording
already used in the toggle's own description and avoiding a
half-metaphor/half-literal split within the same feature.
- Convert the ASCII ellipsis "..." to the full-width "⋯" in 22
in-progress/loading strings, per Taiwanese typography convention;
the English source keys (which legitimately end in "...") are
untouched.
- Reword "Fetch database with previous behaviour" to avoid a 以前/以
+ 前一種 parsing ambiguity, matching the 先前的行為 wording already
used by the sibling 保留先前的行為 entry.
- Drop the orphaned closing paren in errMaxDocumentSize/errMaxRequestSize,
fixing a display defect inherited from the English source.
- Add 同步 to beforeLiveSync for clarity.
Regenerated messagesJson/zh-tw.json and combinedMessages.prod.ts via
`npm run i18n:bake`; no other locale's entries changed.
Verified with tsc-check, lint, lint:community, lint:community:tools,
svelte-check, build, check:compatibility, and test:unit (630 tests,
88 files) — all pass.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>