Skip to content

fix(i18n): the Russian pack says вы to the user throughout - #414

Merged
DuarteSantos8 merged 2 commits into
DuarteSantos8:mainfrom
kurktchiev:gh/ru-one-register
Oct 9, 2026
Merged

DuarteSantos8 merged 2 commits into
DuarteSantos8:mainfrom
kurktchiev:gh/ru-one-register

Conversation

@kurktchiev

@kurktchiev kurktchiev commented Oct 6, 2026 •

Copy link
Copy Markdown
Contributor

ru.js speaks to the user in two registers. The Coach, the sync messages and the gym card say вы ("Ваш план готов", "Добавьте карту зала"). Sign-in, the plan, the workout screen and the progression hints say ты ("Введи пароль", "Твой недельный план", "Продолжай: нажми «+ Добавить упражнение» ниже"). Two lines in sheets.jsx that say the same thing disagree: 'Finish your current workout first' is «Сначала завершите текущую тренировку», and 'Finish the current workout first.' is «Сначала заверши текущую тренировку.»

I counted strings, not lines, by every second-person form: ты and вы in all cases, твой and ваш, imperatives, 2nd-person verbs, and past forms that stand for "you did" («Забыл?», «Побил цель в нём, и вес растёт»). The word lists come from the pack's own vocabulary, sorted by hand. 180 strings address the user with ты, and every other string that addresses the user says вы. No string mixes the two.

This PR moves the 180 to вы. Two of them are the pairing messages ('Open Settings → Account → “Pair the mobile app”…'), which said вы until 0960110 (the Settings rework) rewrote them with ты. Only the register changes: нажми → нажмите, твой → ваш, у тебя → у вас, будешь → будете, Забыл? → Забыли?, Ты это отклонил → Вы это отклонили. With the Cyrillic letters masked, each old and new string match character for character, so word order, punctuation and placeholders are untouched. One string is reworded. In 'Turning this off removes you from the numbers immediately', «Выключишь, и сразу исчезнешь из цифр» would have become «Выключите, и сразу…», which reads as an instruction, so it says «Если выключите, сразу исчезнете из цифр». After the change no string says ты to the user.

Five strings are the user talking to the Coach, and the first commit leaves them alone: the lines the chat posts for the user when a quick action is tapped ('Have a look at my training and tell me what you would change.', 'Build me a fresh plan from my answers.', 'Improve my routine “{0}”.'), the instruction sent with the last one ('Focus only on my routine “{0}”. …'), and an example line no screen uses ('e.g. “swap the squats for split squats, and Mondays are short”', which #415 removes). Four say ты to the Coach and 'Have a look at my training…' said вы.

The second commit brings three smaller things in line with the rest of the pack:

  • 'Have a look at my training and tell me what you would change.' says ты to the Coach, like the other four: «Посмотри на мои тренировки и скажи, что бы ты изменил.»
  • The Coach was «Коуч» in five strings and «Тренер» in 74. The five say «Тренер» now, in the case each one needs: у Тренера, Тренер работает, предлагал Тренер, План Тренера, истории Тренера.
  • Two import messages said «{0} рутин» where 74 strings say «программ…» for a routine. They say «{0} программ», the same genitive plural.

No string uses вы for several people at once, so nothing needed an exception.

Both commits were made by Claude, and no native Russian speaker has checked them.

Tests: no test reads these Russian strings. With both commits, check-locales.mjs: 17 locales, 1,979 keys each. check-source-strings.mjs --strict: 1,555 strings, all in the packs. pt-br-locale.test.js passes with the fingerprint unchanged. The full frontend suite passes on 39bc71e.

No open PR gains a conflict from this branch.

Five open PRs add strings that say ты: #391 (30), #82 (8), #312 (7), and #177 and #373 one each. Whichever of them lands after this one brings the mix back unless those strings move to вы as well. No open PR adds a string with «Коуч» or «рутин». This branch also merges cleanly with #415.

🤖 Generated with Claude Code

kurktchiev and others added 2 commits October 7, 2026 12:42
ru.js addressed the user with ты in 180 strings and with вы in all the
others that address the user, and no string used both. The 180 say вы
now: нажми → нажмите, твой → ваш, Забыл → Забыли, Ты это отклонил → Вы
это отклонили. Only the register changes; with the Cyrillic letters
masked, each old and new string match character for character, except
'Turning this off removes you from the numbers immediately'. It said
«Выключишь, и сразу исчезнешь из цифр»; «Выключите, и сразу…» would
read as an instruction, so it says «Если выключите, сразу исчезнете из
цифр».

Five messages the user sends to the Coach are left as they are: the
Coach is the one addressed there. No string uses вы for several people.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…рамма

ru.js named the Coach «Коуч» in five strings and «Тренер» in 74.
«Коуч» → «Тренер», in the case each string needs:
у Тренера, Тренер работает, предлагал Тренер, План Тренера, истории
Тренера. Two import messages said «{0} рутин» where 74 strings say
«программ…» for a routine; they say «{0} программ» now.

Of the five messages the chat posts for the user when a quick action is
tapped, four say ты to the Coach and 'Have a look at my training and
tell me what you would change.' said вы. It says ты now: «Посмотри на мои
тренировки и скажи, что бы ты изменил.»

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@DuarteSantos8
DuarteSantos8 merged commit f7c66cc into DuarteSantos8:main Oct 9, 2026
4 checks passed
@kurktchiev
kurktchiev deleted the gh/ru-one-register branch October 9, 2026 15:34
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