feat(i18n): add Russian (ru) locale for desktop app#41677
Conversation
- Add ru.ts with full Russian translation (~850 strings, 29 sections) - Add 'ru' to Locale type in types.ts - Add Russian to LOCALE_OPTIONS and LOCALE_ALIASES in languages.ts - Register ru translation in catalog.ts Covers all UI sections: common, boot, notifications, titlebar, keybinds, language, settings, skills, agents, commandCenter, messaging, profiles, cron, artifacts, sidebar, composer, updates, install, onboarding, modelPicker, modelVisibility, shell, rightSidebar, preview, assistant, prompts, desktop, errors, ui. Related: NousResearch#40347
tonydwb
left a comment
There was a problem hiding this comment.
Code Review Summary
Verdict: Approved
Pure documentation addition, no code changes. Large locale catalog is appropriate for an i18n data file; no security, naming, or correctness concerns.
Reviewed by Hermes Agent
|
Hi! I independently submitted a Russian locale PR (#46634, marked as duplicate of this one). My translation was done on the latest main (commit 6cb88a0, June 14 2026), so it covers new strings added after this PR was opened — particularly in messaging, updates, install, and shell sections. It also has more complete pluralization for Russian (which has 3 plural forms: 1, 2-4, 5+). If it would help, feel free to cherry-pick any missing strings from my ru.ts: Happy to consolidate into this PR if that's preferred. Thanks for the work on this! |
|
Thanks for pushing the Russian Desktop locale work. I audited the current RU Desktop PR cluster and I agree this PR is the right canonical place to consolidate the effort, rather than opening another duplicate PR. I checked this branch against current Verification:
Suggested technical path:
Suggested Russian copy polish before merge:
Happy to help with a native Russian technical editorial pass or provide a focused patch if you or the maintainers want to consolidate the branch here. |
|
@DrMaks22 The missing keys you identified (notifications.native, shell.statusbar, etc.) are all present in my translation (#46634), since it was done against the current main (commit 6cb88a0, June 14 2026) — after those sections were added to en.ts. It also uses defineLocale() throughout, so any future keys added to en.ts will automatically fall back to English without breaking the build. If it helps move things forward, the up-to-date ru.ts is here: Happy to open a fresh PR based on this file if that's easier than rebasing #41677. |
|
Rechecked the current RU Desktop localization cluster and kept this path duplicate-free: instead of opening another upstream PR, I prepared a focused helper patch against this canonical branch: What the helper patch does:
Verification on the helper branch:
If the author/maintainers still want #41677 to remain the canonical focused RU Desktop PR, this helper should be safe to merge into the branch for a stronger native Russian technical pass. |
|
Thanks for the review and the plural-handling patch — good catch on the 11–14 exception. I've refreshed #46634: rebased onto current main, added proper Russian pluralization (shared Since both #41677 and #46634 cover the same ground, it'd be cleanest to land one. #46634 is now fully current against main and test-clean — happy to have it be the canonical RU Desktop PR, or to fold my plural/terminology work into whichever branch the maintainers prefer. Let me know which way you'd like to consolidate. |
|
Thanks, @Anatoly17. I rechecked the refreshed #46634 at Verification on the refreshed branch:
I agree that only one RU Desktop PR should land. Since #46634 is now current-main, That patch only touches user-facing RU copy ( From my side, either consolidation route is fine: land #46634 with that small polish, or fold the same current-main/plural/editorial work back into #41677. The important thing is to keep one focused, test-clean RU Desktop PR rather than adding another duplicate. |
|
Merged your polish patch into #46634 — Anatoly17#1 ( Rechecked on the merged branch:
So #46634 now carries the current-main rebase, the shared plural helper, and your editorial polish — one focused, test-clean RU Desktop PR. Thanks for the review and the collaboration, @DrMaks22. Over to the maintainers on which PR to land — happy for #46634 to be the canonical RU Desktop PR, and equally fine to fold the same commits into #41677 if that's preferred. Either way, one PR. |
Summary
Adds full Russian (ru) locale support to the Hermes Desktop app.
Changes
apps/desktop/src/i18n/ru.ts— Complete Russian translation covering ~850 strings across all 29 UI sectionsapps/desktop/src/i18n/types.ts— Added'ru'to theLocaleunion typeapps/desktop/src/i18n/languages.ts— Added Russian toLOCALE_OPTIONS(name: Русский, englishName: Russian) andLOCALE_ALIASES(ru, ru-ru, ru_ru)apps/desktop/src/i18n/catalog.ts— Registeredrutranslation moduleCoverage
All UI sections translated:
Testing
npx tsc --noEmitpasses with no errors.Closes #40347