feat(i18n): add Russian (ru) locale for desktop app#46634
Conversation
Full Russian translation for all desktop UI strings. Registers the locale in types.ts, languages.ts, and catalog.ts, and uses defineLocale() so any untranslated string falls back to English. Adds pluralRu()/countRu() helpers with correct Russian plural rules (incl. the 11-14 exception) and routes all count-based strings through them. Reconciled against current main: dropped removed keys (credentials.or/escToCancel, providers.removeExternal->removeExternalGeneric, agents.tokensK, commandCenter.restartMessaging, sidebar.reorderWorkspace, modelPicker.persistGlobal(Session), clarify.shortcutSuffix/back/send) and moved desktop.branchTitle to its count form.
2e38e46 to
b23a07f
Compare
|
I did another live Desktop QA pass against the current RU Desktop branch and found a few remaining English fallback surfaces, especially the intro/welcome copy, project/sidebar actions, cron counters, context usage, preview save errors, assistant resume copy, and tool-title wrappers. I opened a focused follow-up PR into the canonical RU branch here: Anatoly17#2 Verification on that patch:
The wording pass also removes several unnecessary English/Russian hybrids from the Russian intro copy while preserving command names, provider names, tool ids, paths, and technical tokens where they should remain unchanged. |
|
A follow-up patch for the newly spotted RU desktop gaps is ready here: Anatoly17#2 (latest commit 374e079). It addresses the screenshots with remaining English in:
Validation on the patch branch is green:
Recommended next step: fold/merge Anatoly17#2 into this canonical RU Desktop PR so #46634 carries the screenshot-driven polish before maintainer review. |
|
Thanks for the thorough QA pass, @DrMaks22 — the MoA / intro / stale-aux English-fallback gaps you spotted are real and worth fixing. That said, I'd like to keep #46634 scoped to the Russian locale itself (the Could you open #2 as its own PR directly against Thanks again for the collaboration. |
Full Russian translation for all desktop UI strings (~1000 lines). Adds ru.ts translation file and registers the locale in types.ts, languages.ts, and catalog.ts. Uses defineLocale() for English fallback on any untranslated strings.
What does this PR do?
Adds a full Russian (ru) locale for the Hermes Desktop UI
Related Issue
Fixes # (no issue)
Type of Change
Changes Made
Added apps/desktop/src/i18n/ru.ts with ~1000 translated strings
Registered 'ru' in types.ts, languages.ts (aliases: ru, ru-ru), and catalog.ts
Used defineLocale() so future untranslated keys fall back to English automatically
How to Test
Checklist
Code
fix(scope):,feat(scope):, etc.)pytest tests/ -qand all tests passDocumentation & Housekeeping
docs/, docstrings) — or N/Acli-config.yaml.exampleif I added/changed config keys — or N/ACONTRIBUTING.mdorAGENTS.mdif I changed architecture or workflows — or N/AFor New Skills
hermes --toolsets skills -q "Use the X skill to do Y"Screenshots / Logs