Skip to content

fix(i18n): polish Russian desktop locale - #1

Merged
timoncool merged 5 commits into
timoncool:feat/i18n-ru-localefrom
DrMaks22:codex/ru-polish-pr66833
Jul 20, 2026
Merged

fix(i18n): polish Russian desktop locale#1
timoncool merged 5 commits into
timoncool:feat/i18n-ru-localefrom
DrMaks22:codex/ru-polish-pr66833

Conversation

@DrMaks22

Copy link
Copy Markdown

Summary

This is a focused helper patch for NousResearch#66833, not another upstream RU Desktop PR.

  • completes a native Russian technical editorial pass across the full Desktop catalog;
  • removes visible English leftovers while preserving commands, environment variables, paths, IDs, product names, and established technical terms;
  • centralizes Russian plural selection with the 11-14 exception and applies it consistently;
  • brings Russian settings field copy onto the canonical nested defineFieldCopy shape;
  • preserves defineLocale() fallback behavior for future keys;
  • adds behavior coverage for Russian aliases, persistence, runtime registration/fallback, field-copy resolution, and plural forms.

This directly addresses every item in the automated review on upstream NousResearch#66833: untranslated visible copy, incorrect count < 5 plural handling/Latin P, and missing regression tests.

Validation on the PR branch

  • explicit locale parity: 2303 / 2303 keys; no missing/extra keys or function-shape mismatches;
  • npm run typecheck --workspace apps/desktop;
  • npm run test:ui --workspace apps/desktop -- src/i18n/languages.test.ts src/i18n/runtime.test.ts src/i18n/context.test.tsx src/components/language-switcher.test.tsx src/i18n/ru.test.ts5 files / 37 tests passed;
  • npm run lint --workspace apps/desktop0 errors (only pre-existing warnings outside this localization scope);
  • npm run build --workspace apps/desktop;
  • Prettier and git diff --check;
  • independent native-Russian and technical red-team reviews; the only final wording issue found was corrected before publication.

Current-main rebase check

I also applied this complete commit series to current upstream main (614dc194e) in a clean validation worktree. It applied without conflicts. Current main has one new English key since NousResearch#66833, settings.nav.billing; adding billing: 'Оплата' produced 2304 / 2304 explicit parity, and typecheck, the 37-test slice, lint (0 errors), and the production build all passed.

After this helper is merged, the remaining mechanical step for NousResearch#66833 is therefore a rebase onto current main plus that one billing entry.

Anatoly17 and others added 5 commits July 19, 2026 02:00
Add behavior-based coverage for the Russian locale without pinning exact
Russian wording:
- normalizeLocale / isLocale / isSupportedLocaleValue / localeConfigValue
  for `ru` and the `ru-RU` and `ru_ru` aliases
- I18nProvider restores a persisted Russian locale from display.language
  and saves the selected Russian locale back to config
- runtime translator resolves the active Russian locale and falls back to
  English when a Russian key cannot be resolved

Test-only change; no production code, ru.ts, or other translations touched.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants