webclient: the settings screen in en, uk and ru
Settings is the first area off hard-coded English: 122 strings for the shell and
its five tabs — App, Account, Notifications, Synapse and MCP — plus the 43 the
shared vocabulary contributes (common.*, col.*, confirm.*, toast.*).

The English dictionary carries the very literals the templates used, so the
interface a test reads is byte-for-byte what it was and the 56 assertions on
English UI text stay green; only a slug that is genuinely counted had to be
restructured into a plural. In ru and uk the counted strings get the three
Slavic forms driven by n. Product names are never translated: Navi, Synapse,
MCP, Ollama, Tool call, Subagent and Token read the same in all three
languages, and the settings screen keeps one settings.* area with
panel-prefixed slugs rather than a slug per panel, as the other gnexus clients
do.

Strings carrying markup are split around it instead of hiding tags in the
dictionary: the install steps keep their inline icons and <code>http://</code>
in the template, with the words of each sentence on either side. Four lists of
labels — the settings tabs, two table headers, and the reaction options — are
now computed rather than module-level constants, since a list built at import
keeps the language that was active then and ignores a switch. Dates in the
panels go through the interface language as well, not the browser's.

Checked in Chromium against the built bundle: all three languages on all five
tabs, with a scan for a slug leaking into the rendered text as the pass
condition, and the account left with no override afterwards.
1 parent a521651 commit fa4bc253be832cca37452fdb38244909c65f21e7
@Eugene Sukhodolskiy Eugene Sukhodolskiy authored 1 day ago
Showing 22 changed files
View
docs/i18n.md
View
webclient/dist/assets/index-C2D3nRHs.js 0 → 100644
Not supported
View
webclient/dist/assets/index-Dxwm8ZUk.css 0 → 100644
View
webclient/dist/assets/index-x9irBNbN.css 100644 → 0
View
webclient/dist/assets/index-xKn2-Jqe.js 100644 → 0
Not supported
View
webclient/dist/index.html
View
webclient/dist/sw.js
View
webclient/src/components/settings/AdminToolsPanel.vue
View
webclient/src/components/settings/ApiKeysPanel.vue
View
webclient/src/components/settings/AppPanel.vue
View
webclient/src/components/settings/CreateKeyModal.vue
View
webclient/src/components/settings/CreateTargetModal.vue
View
webclient/src/components/settings/McpKeysPanel.vue
View
webclient/src/components/settings/NotificationSettingsPanel.vue
View
webclient/src/components/settings/SettingsView.vue
View
webclient/src/components/settings/ShowTokenModal.vue
View
webclient/src/components/settings/SynapseReactionsPanel.vue
View
webclient/src/components/settings/SynapseTargetsPanel.vue
View
webclient/src/i18n/messages/en.js
View
webclient/src/i18n/messages/ru.js
View
webclient/src/i18n/messages/uk.js
View
webclient/tests/unit/components/settings/settingsView.test.js