Перевод панели доведён до конца, скриншоты всех разделов, английское описание главным

Перевод
* Полный обход исходников скриптом, повторяющим логику подстановки: было
  видно 681 строку, которая осталась бы русской. Переведены все — словарь
  вырос с 640 до 1304 записей.
* Покрыты разделы, которых раньше не было в проверке: консоль сервера с
  описанием всех RCON-команд, планировщик задач, файрвол, базы MySQL, FTP,
  автоустановка модов, совладельцы, статистика сервера, страница аккаунта,
  сообщения планировщика и все письма.
* Убран ключ-предлог 'в' => 'at': он подменялся ВНУТРИ ещё не переведённых
  предложений и давал «at поле имя пользователя». Служебные слова переводятся
  только вместе с фразой.
* Формат даты 'd.m.Y в H:i' содержал русское «в» между датой и временем —
  теперь проходит через t() (31 вызов date() в 20 файлах), в английском
  режиме получается 30.07.2026 14:22.
* Абзацы FAQ разбиты по строкам вёрстки, атрибуты placeholder и tooltip
  добавлены отдельными ключами — раньше они не попадали в разбор.
* Живой обход 45 страниц в английском режиме: русскими остались 4 места, и
  все намеренно — подпись «Русский» у переключателя, коды языков игрового
  сервера в FAQ и регулярное выражение проверки имени.

Скриншоты
* docs/screenshots/{ru,en} — по 38 кадров: вход, регистрация, восстановление
  пароля, кабинет, заказ сервера, новости, статус, тикеты, FAQ, веб-хостинг и
  вся админка вместе со скрытыми вкладками настроек и переключателем капчи.
* docs/screenshots/README.md и README.ru.md — галереи, где каждый раздел
  показан на двух языках рядом.

Документация
* README.md теперь английский (главное описание), русский переехал в
  README.ru.md; в начале каждого — кнопка на другой язык.
* Добавлен раздел о доступных играх: 11 игр каталога с кодами,
  query-протоколами, диапазонами слотов и портов, плюс список ядер, которые
  клиент переключает в один клик.
* Добавлен раздел планов: больше игр по просьбам людей и современные
  платёжные системы — PayPal, Stripe, Lava.

Поддерживается и развивается с помощью REDL.IO.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
2026-07-30 03:48:33 +00:00
co-authored by Claude Fable 5
parent e0b96d3501
commit 2e0eacbcea
106 changed files with 1876 additions and 878 deletions
+29 -1
View File
@@ -170,7 +170,35 @@ translation layer:
* Anything not yet translated falls back to the original Russian text, so nothing can disappear
from the interface
Details and current coverage: see [GUIDE.en.md](GUIDE.en.md), the "Interface language" section.
Translation is applied to the finished response via `ob_start()`, so none of the 200 template files
had to be rewritten and the coverage extends to the admin area and the e-mails at once. Replacement
only happens on word boundaries — without that a short key corrupts longer words ("Мод" turned
"Модуль" into "Modуль").
### Translation coverage
The dictionary holds **1304 phrases** — everything the panel shows a human: the client area,
ordering a server, server management (the console with every RCON command described, FTP, MySQL
databases, the firewall, the task scheduler, mod auto-install), tickets, the whole FAQ, the entire
admin area, the e-mails and the scheduler's status messages.
Coverage is not eyeballed: a script replays the replacement logic against the sources and lists
what would stay Russian. By that measure **four** items are uncovered, and all four should be:
* "Русский" — the label of the language switcher itself;
* `rus => Pyccĸий` and `ukr => Українська` in the FAQ — these are game server language codes, not UI;
* the name validation regular expression `/^([А-ЯЁ])([а-яё]{1,15})$/u` — code, not text.
Two traps that produced mixed-language output were fixed separately:
* the preposition "в" was its own dictionary entry and got substituted inside sentences that were not
translated yet, producing "at поле имя пользователя". Function words like that are only translated
together with the phrase they belong to;
* the date format `d.m.Y в H:i` contains the Russian "в" between the date and the time. It now goes
through `t()` (31 `date()` calls across 20 files), so English mode renders `30.07.2026 14:22`.
Verified by a live crawl of 45 pages in English mode, including the creation forms and the hidden
settings tabs. Details: see [GUIDE.en.md](GUIDE.en.md), the "Interface language" section.
---