Skip to content

feat: add Russian language support#3212

Open
myroom wants to merge 2 commits into
BloopAI:mainfrom
myroom:feat/add-russian-language
Open

feat: add Russian language support#3212
myroom wants to merge 2 commits into
BloopAI:mainfrom
myroom:feat/add-russian-language

Conversation

@myroom

@myroom myroom commented Mar 19, 2026

Copy link
Copy Markdown

Summary

  • Add Russian (Русский) as a supported UI language
  • Add Ru variant to UiLanguage enum in Rust backend (v6.rs)
  • Update generated TypeScript types (shared/types.ts) to include RU
  • Add Russian to i18n language configuration (languages.ts, config.ts)
  • Add Russian translation files for all namespaces: common, settings, projects, tasks, organization

Test plan

  • Verify Russian appears in Settings → Language dropdown
  • Select Russian and confirm all UI strings are translated
  • Verify fallback to English works for any missing keys
  • Run cargo test to ensure Rust enum changes compile
  • Run node scripts/check-unused-i18n-keys.mjs to verify translation coverage

🤖 Generated with Claude Code


Note

Low Risk
Low risk: this is primarily additive i18n work (new locale resources and wiring) plus a small enum/type expansion for language selection.

Overview
Adds Russian (RU) as a supported UI language end-to-end: extends the Rust UiLanguage enum and generated shared/types.ts union, updates web i18n language mappings/config to recognize RU/ru, and registers Russian resource bundles.

Includes full Russian translation JSONs for the common, settings, projects, tasks, and organization namespaces so selecting RU in settings can render translated strings.

Written by Cursor Bugbot for commit bea62a2. This will update automatically on new commits. Configure here.

Add Russian (Русский) as a supported UI language:
- Add Ru variant to UiLanguage enum in Rust backend
- Add RU to generated TypeScript types
- Add Russian to i18n language configuration and dropdown
- Add Russian translation files (common, settings, projects, tasks, organization)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Fix All in Cursor

Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Comment thread packages/web-core/src/i18n/locales/ru/tasks.json
Russian requires 4 plural forms per Intl.PluralRules:
- _one: 1, 21, 31... (файл)
- _few: 2-4, 22-24... (файла)
- _many: 5-20, 25-30... (файлов)
- _other: fractional numbers (файлов)

Added _few and _many forms for all 15 pluralized keys in
common.json and tasks.json.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@Juanlucasbg

Copy link
Copy Markdown

Aggressive review summary — PR #3212

1841-line addition of Russian (ru) language support across 9 locale files. Verdict: same as the rest of the queued language-pack PRs — maintainer policy decision; recommend batched ruling.

Why this is a policy decision

The diff is almost entirely translation values. Code-quality review can't substitute for native-Russian linguistic review. Mechanically: if the ru/ JSON files cover the same key set as en/, the integration is correct (i18next falls back to source language for missing keys).

Sunsetting context

The repo is sunsetting (banner #3388, project routes #3387). New locales cost translator effort and signal long-term support to that language community. Currently queued language-pack PRs: this one (#3212 Russian), #3096 (Portuguese), #3288 (Hebrew), #2785 (Turkish), #2434 (Turkish — different author).

Recommendation to the maintainer: pick a single policy and apply to all queued language packs simultaneously. Splitting decisions PR-by-PR creates unfair-treatment perception across contributor communities.

Three options:

  1. Close all: explicit "no new locales in the wind-down".
  2. Merge all queued: explicit "we accept what's already submitted, no more".
  3. Selective merge by quality: requires human native-speaker review per locale.

Findings (technical)

Verdict

Defer. Bundle with #3096, #3288, #2785, #2434 for a single ruling.

— Reviewed by automated single-pass review (i18n batch policy decision; same shape as #3096 — see that comment for the option matrix).

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.

2 participants