webclient: the artifacts drawer in en, uk and ru
The second area of the interface translation. Every user-visible string in
ArtifactsPanel.vue now goes through t(): the four tab chips, the empty states,
the action labels (open preview / open raw file / download / copy link), the
pull-to-refresh captions, the background-task badges and ages, the terminal
detail rows and the live-output header.

60 new slugs, in all three dictionaries:

- 39 in artifacts.*;
- 11 in the shared col.* vocabulary (Tool, Status, Started, Finished, PID,
  Command, CWD, Uptime, Background, Reason, Sub-agent tokens) — the drawer is
  where these table headers first appear;
- 10 in common.* — Download, Yes, No, N/A, the tool-output labels Result and
  Live output, and the four the sidebar needs as well: the three
  pull-to-refresh captions and "just now". These are the same words on both
  screens, so they sit in the shared vocabulary area and the drawer keeps only
  what is about the drawer.

Four details worth knowing:

- The English values are verbatim the literals the code hard-coded, so the
  English interface is byte-identical and the existing tests stay untouched.
- Counted strings use dictionary plurals: '{n} links in session' is
  one/few/many in ru and uk, one/other in en.
- Times (formatTime / formatDate) and ages now format against locale.value
  instead of the browser locale, so a Russian interface shows 16:56 where
  English shows 04:56 PM.
- Unit suffixes in formatUptime (s/m/h) are left alone: they are symbols
  inside a number, not words.

Checked live in Chromium against the built bundle on the dev backend: the
drawer was driven through all four tabs in all three languages on two real
sessions — one with published STL files and a viewed-images group, one with
eight extracted links — with a slug-leak scan as the pass condition, and the
time/age formatting difference confirmed in the rendering.
1 parent fa4bc25 commit b3825f8f9c2fb225d683bdc079caa59b74e8caff
@Eugene Sukhodolskiy Eugene Sukhodolskiy authored 1 day ago
Showing 11 changed files
View
docs/i18n.md
View
webclient/dist/assets/index-C2D3nRHs.js 100644 → 0
Not supported
View
webclient/dist/assets/index-DN8h4JbZ.css 0 → 100644
View
webclient/dist/assets/index-DUjgdrch.js 0 → 100644
Not supported
View
webclient/dist/assets/index-Dxwm8ZUk.css 100644 → 0
View
webclient/dist/index.html
View
webclient/dist/sw.js
View
webclient/src/components/artifacts/ArtifactsPanel.vue
View
webclient/src/i18n/messages/en.js
View
webclient/src/i18n/messages/ru.js
View
webclient/src/i18n/messages/uk.js