Skip to content

feat(i18n): add Russian locale#3298

Closed
Tzeenchist wants to merge 4 commits into
BloopAI:mainfrom
Tzeenchist:feat/i18n-russian-locale
Closed

feat(i18n): add Russian locale#3298
Tzeenchist wants to merge 4 commits into
BloopAI:mainfrom
Tzeenchist:feat/i18n-russian-locale

Conversation

@Tzeenchist

@Tzeenchist Tzeenchist commented Mar 29, 2026

Copy link
Copy Markdown

Summary

  • add RU to the config enum and frontend language registry
  • register Russian locale resources in the i18n config
  • add complete Russian translations for the existing locale namespaces
  • align Russian git status keys with the English source locale

Stacking

This PR is stacked on top of #3297.
Please review/merge #3297 first, then review this PR commit-by-commit or after rebasing.

Validation

  • node scripts/check-locale-translation.mjs ru
  • node scripts/check-unused-i18n-keys.mjs
  • ./scripts/check-i18n.sh

QA / review notes

  • i18n validation is green
  • browser QA was attempted, but the local environment has tooling blockers unrelated to the locale diff: broken dev:qa script, missing cargo-watch in dev, and Chromium sandbox restrictions in the browse tool

Note

Low Risk
Low risk: changes are primarily additive i18n resources and docs, with a small config/type expansion (UiLanguage::RU) that could affect language selection but not core logic.

Overview
Adds Russian as a selectable UI language end-to-end by extending the backend UiLanguage enum / generated shared UiLanguage type and registering RUru plus the Russian endonym in the frontend language registry.

Registers Russian translation resources in the i18n config and introduces a full ru locale pack across the existing namespaces (common, settings, projects, tasks, organization).

Improves contributor workflow by documenting the i18n process (docs/i18n.md), adding locale helper scripts (scripts/create-locale.mjs, scripts/check-locale-translation.mjs), and wiring them into package.json as locale:new and locale:check.

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

@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.

"label": "Скрипт очистки (Cleanup)",
"helper": "Этот скрипт запускается внутри worktree после выполнения кодинг-агента, только если были внесены изменения. Используйте его для задач контроля качества, таких как запуск линтеров, форматировщиков, тестов или других этапов проверки.",
"parallelLabel": null,
"parallelHelper": null

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Null values for nonexistent keys in cleanup section

Low Severity

The Russian locale adds "parallelLabel": null and "parallelHelper": null inside settings.repos.scripts.cleanup, but the English source locale (and every other locale) does not have these keys in the cleanup section — they only exist in the setup section. These are spurious keys with null values that don't correspond to any source key. Additionally, null values in JSON translation files bypass the get_json_keys and flattenStrings validation helpers (which filter for string-typed values), so the existing i18n consistency checks silently skip them.

Fix in Cursor Fix in Web

@LSRCT LSRCT closed this Mar 30, 2026
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