feat(i18n): add Russian (ru) locale for Desktop UI + CLI polish - #57654
feat(i18n): add Russian (ru) locale for Desktop UI + CLI polish#57654Dimapitaya wants to merge 1 commit into
Conversation
Обновление Hermes сбросило main на апстрим и отбросило прежний ru-коммит. Восстановлено cherry-pick + адаптация под изменённый контракт en.ts: - clarify: send -> continueLabel, убраны back/shortcutSuffix - sidebar.row: убран удалённый reorderWorkspace - assistant.branchTitle: строка -> функция (n => ...) - ru.yaml: разрешён конфликт, добавлен перевод новой строки blocked_not_owner Typecheck: exit 0. i18n unit-tests: 21/21. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Duplicate of #40701 (earliest open canonical Russian Desktop locale). This adds the same |
teknium1
left a comment
There was a problem hiding this comment.
Thanks for supplying the Russian Desktop catalog and completing the CLI strings. The Desktop gap still exists on current main: apps/desktop/src/i18n/catalog.ts:7-11 has no ru registration.
Problems
- The added catalog is behind current
en.ts: it omitscommon.expand,common.formatJson, andcommon.tryHint(apps/desktop/src/i18n/en.ts:28-30,43), as well asboot.errors.gatewayConnectionLost(apps/desktop/src/i18n/en.ts:79).defineLocale()merges English fallbacks (apps/desktop/src/i18n/define-locale.ts:39-40), so it remains functional but is not a complete Russian UI. - The PR adds aliases without covering them in
apps/desktop/src/i18n/languages.test.ts:6-42, which currently tests the alias/config contract for all existing Desktop locales.
Suggested changes
- Refresh
ru.tsfrom currenten.tsand translate the current missing keys, or label it partial. - Add Russian alias, config-value, and runtime translation assertions beside the existing i18n tests.
This is an automated hermes-sweeper review.
| return many | ||
| } | ||
|
|
||
| export const ru = defineLocale({ |
There was a problem hiding this comment.
defineLocale() will make omitted keys fall back to English, but current main has keys absent from this catalog, including common.expand/formatJson/tryHint and boot.errors.gatewayConnectionLost in apps/desktop/src/i18n/en.ts:28-30,43,79. Please refresh this catalog from current en.ts or scope the PR as partial.
Closes #52137
What
Adds a complete Russian (
ru) locale for the Hermes Desktop UI and finishes the remaining English strings in the CLI/agentru.yamlcatalog.Desktop (
apps/desktop/src/i18n/)ru.ts— fulldefineLocale({...})translation of the main UI: common, boot, notifications, titlebar, settings (all sections), skills, agents, command center, messaging (all messenger field copy), profiles, cron, artifacts, sidebar, composer, status stack, updates, onboarding, model picker, shell, preview, assistant, prompts, errors.fieldLabels+fieldDescriptions(defineFieldCopy({...})) for the settings panel, following theja.tspattern.plural()helper.types.ts(Localeunion),catalog.ts(TRANSLATIONS), andlanguages.ts(LOCALE_OPTIONS+LOCALE_ALIASES:ru,ru-ru).CLI (
locales/ru.yaml)/resumeguidance messages and gateway status labels (Model/Context), plus the newerblocked_not_ownermessage.Verification
npx tsc -p apps/desktop --noEmit→ clean (exit 0)npx vitest run --environment jsdom apps/desktop/src/i18n→ 21/21 passingru.yamlvalidated with a YAML parser; structurally matchesen.yamlNotes
defineLocale), so any future key falls back to English gracefully.