diff --git a/docs/i18n.md b/docs/i18n.md index 6a308d8..91def6d 100644 --- a/docs/i18n.md +++ b/docs/i18n.md @@ -36,8 +36,12 @@ `params.n`; ru/uk use one/few/many, en uses one/other. - A slug is `.` and an area is a screen or a component group — `settings.*`, `sidebar.*`, `messages.*`, `chat.*`, `artifacts.*`, `ui.*`, - `profile.*`, `app.*`, `common.*`. Slugs are shared with the other gnexus - services where they mean the same thing. + `profile.*`, `app.*`. Slugs are shared with the other gnexus services where + they mean the same thing. +- Four areas are vocabulary rather than screens and are filled in as the + screens that need them are translated: `common.*` (save / cancel / delete / + revoke…), `col.*` (table headers), `confirm.*` (dialog titles and texts) and + `toast.*` (titles of the notifications that pop up after an action). - `SUPPORTED_LOCALES` is the single list: adding a language means adding `messages/.js` there, plus `navi/locales.py` on the backend (and the same slug in `navi_users.locale_override` constraints on the client side). @@ -50,20 +54,31 @@ ## Translation status -Phase 1 shipped the framework and the language block only. Everything else is -still hard-coded English and is translated area by area, biggest first: +The framework and the language block shipped first; from there the interface is +translated area by area, biggest first, one commit per area. An area not yet +done is hard-coded English and looks exactly as it did before — the two kinds of +screen sit side by side without either noticing. | Area | Strings | Status | |---|---|---| -| `settings.*` | ~118 | language block only | +| `settings.*` | 125 (+ 41 in `common.*`, `col.*`, `confirm.*`, `toast.*`) | done | | `artifacts.*` | ~45 | pending | | `sidebar.*` | ~29 | pending | | `messages.*` | ~27 | pending | | `chat.*` | ~21 | pending | | `ui.*` | ~20 | pending | -The remaining strings are counted in templates (text nodes, `placeholder`, -`title`, `aria-label`, `label`, `alt`) plus keyed strings in ` - + +
diff --git a/webclient/dist/sw.js b/webclient/dist/sw.js index d647c60..63bc75f 100644 --- a/webclient/dist/sw.js +++ b/webclient/dist/sw.js @@ -8,13 +8,13 @@ * - /images/*: cache-first, capped — except the app's own artwork (below); * - everything dynamic (/api, /ws, /auth, /push, /content, ...): pass-through. * - * 784e239ff091bb09 is stamped at build time (vite.config.js closeBundle) + * bbd4943df8d73fe6 is stamped at build time (vite.config.js closeBundle) * with a digest of index.html + the hashed asset filenames — so sw.js bytes * change on every build, the browser picks the new SW up (served no-store), * and activation evicts caches from previous builds. */ -const VERSION = '784e239ff091bb09'; +const VERSION = 'bbd4943df8d73fe6'; const SHELL_CACHE = `navi-shell-${VERSION}`; const ASSETS_CACHE = `navi-assets-${VERSION}`; const IMAGES_CACHE = 'navi-images'; diff --git a/webclient/src/components/settings/AdminToolsPanel.vue b/webclient/src/components/settings/AdminToolsPanel.vue index 07adb99..24a1b38 100644 --- a/webclient/src/components/settings/AdminToolsPanel.vue +++ b/webclient/src/components/settings/AdminToolsPanel.vue @@ -1,38 +1,39 @@