Skip to content

fix(i18n): complete and correct the Russian translation - #1727

Open
LoranRendel wants to merge 1 commit into
LibreBooking:developfrom
LoranRendel:feature/russian-translation-update
Open

LoranRendel wants to merge 1 commit into
LibreBooking:developfrom
LoranRendel:feature/russian-translation-update

Conversation

@LoranRendel

Copy link
Copy Markdown

What this does

lang/ru_ru.php declared 756 of the 985 string keys in en_us.php. The remaining 233 silently fell back to English, because ru_ru extends en_gb and calls parent::_LoadStrings() — so a Russian user just sees English text, with no error anywhere. This adds all 233, each inserted at the position the key holds in en_us.php to keep the two files aligned and the diff reviewable.

Eight more keys were declared but had been left at their English value, so they never fell back and never got translated: About, Logo, CssFile, SQLStatement, QuotaEnforcement, OriginalEndDate, ResourceBufferTimeCsv, ResourceMaxNoticeCsv.

It also corrects 102 existing strings that carried English Title Case into Russian. Russian capitalises only the first word of a phrase, so Активация Аккаунта should be Активация аккаунта.

Strings reworded beyond capitalisation

A few of those 102 were wrong on the merits, not just in case. These are retranslated from the English source:

Key Was Problem
AwaitingActivation Ожидает Обобрения said "awaiting approval", not activation — and a typo
BlackoutUpdated прошедшее Обновлен not a sentence
ReservableTimeSlots Резервированные Временные Интервалы said "reserved", not "reservable"
MyReservation Мои Бронирования plural, though the key is singular
ManageResourceStatus Статус Помещений singular, though the key is plural
DeleteUserWarning Удаление этого пользователя будут удалены… ungrammatical
ThisWeek Этой Неделя wrong case ending
AddQuota, CreatingReservation, MySavedReports Добавть, Бронироания, Сохраненнные typos

Conventions followed

Terminology matches what the file already uses: Resource → «помещение», Reservation → «бронирование», Accessory → «оборудование».

Five strings stay English deliberately: Email and OK read naturally in Russian, AM / PM is a time notation, and Client ID / Secret are PayPal API field names.

Verification

Loaded the classes and compared against en_us directly:

  • keys present in en_us but absent from ru_ru: 233 → 0
  • strings still identical to English: 13 → 5 (the five listed above)
  • php -l lang/ru_ru.php clean

No behaviour change outside this one file. Also running in production on a Russian-language 5.3.0 install.

ru_ru.php declared 756 of the 985 keys in en_us.php. The other 233
fell back to English silently, because ru_ru extends en_gb and calls
parent::_LoadStrings(). This adds all 233, each inserted at the
position the key holds in en_us.php.

Eight more keys were declared but had been left at their English
value, so they never fell back and never got translated either:
About, Logo, CssFile, SQLStatement, QuotaEnforcement,
OriginalEndDate, ResourceBufferTimeCsv, ResourceMaxNoticeCsv.

It also fixes 102 existing strings that carried English Title Case
into Russian, where only the first word is capitalised:
"Активация Аккаунта" -> "Активация аккаунта".

Some of those were wrong beyond case and are reworded from the
English source:

  AwaitingActivation   said "awaiting approval", not activation
  BlackoutUpdated      read "прошедшее Обновлен", not a sentence
  ReservableTimeSlots  said "reserved", not "reservable"
  MyReservation        was plural, but the key is singular
  ManageResourceStatus was singular, but the key is plural
  DeleteUserWarning    was ungrammatical
  ThisWeek             "Этой Неделя" - wrong case ending
  AddQuota, CreatingReservation, MySavedReports - typos

Terminology follows the existing file: Resource is "помещение",
Reservation is "бронирование", Accessory is "оборудование".

Five strings stay English on purpose: Email and OK read naturally
in Russian, "AM / PM" is a time notation, and Client ID and Secret
are PayPal API field names.

Co-Authored-By: Claude Opus 5 (1M context) <[email protected]>

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Copilot review overview

🟡 Changes recommended

Several strings remain untranslated or produce grammatically incorrect Russian output.

Review effort: Balanced
Findings: 1 Medium severity · 3 Low severity

Open (4)
What changed in this PR

Completes and improves Russian localization coverage.

Changes:

  • Adds missing Russian translations.
  • Corrects capitalization, grammar, terminology, and untranslated values.
  • Adds localized errors, page titles, and email subjects.
File Description
lang/​ru_ru.php Expands and corrects Russian translations.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread lang/ru_ru.php
Comment on lines 965 to 966
$strings['ImportICS'] = 'Импорт ICS File';
$strings['ImportQuartzy'] = 'Импорт Quartzy File';
Comment thread lang/ru_ru.php
$strings['UponRegistration'] = 'При регистрации';
$strings['ViewTerms'] = 'Посмотреть условия использования';
$strings['IAccept'] = 'Я принимаю';
$strings['TheTermsOfService'] = 'условиями использования';
Comment thread lang/ru_ru.php
Comment on lines +729 to +731
$strings['Standard'] = 'Стандартная';
$strings['Wide'] = 'Широкая';
$strings['Tall'] = 'Высокая';
Comment thread lang/ru_ru.php
$strings['ResourceStatusChangedSubject'] = 'Доступность %s изменилась';

$strings['UserDeleted'] = 'Аккаунт Пользователя %s был удален %s';
$strings['UserDeleted'] = 'Аккаунт пользователя %s был удалён %s';

This branch has not been deployed

No deployments
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