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

Перевод
* Полный обход исходников скриптом, повторяющим логику подстановки: было
  видно 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
+18 -3
View File
@@ -255,9 +255,24 @@ cp panel/application/lang/en.php panel/application/lang/de.php
# в panel/engine/main/lang.php
```
Полноту словаря мы проверяли обходом страниц: все 20 разделов, которые проходим, отдаются без
остатков русского текста. Если увидите непереведённую фразу — допишите её в
`application/lang/en.php`, ключ это русский текст ровно в том виде, в каком он на странице.
**Полнота.** В словаре 1304 фразы — весь текст, который видит человек: кабинет, заказ, управление
сервером (консоль с описанием всех RCON-команд, FTP, MySQL, файрвол, планировщик, автоустановка
модов), тикеты, FAQ целиком, вся админка и шаблоны писем. Покрытие мы не оцениваем на глаз: скрипт
повторяет логику замены на исходниках и показывает, что осталось бы русским, а живой обход 45
страниц в английском режиме это подтверждает. Русскими намеренно остаются четыре места: подпись
«Русский» у самого переключателя, два кода языков игрового сервера в FAQ
(`rus => Pyccĸий`, `ukr => Українська`) и регулярное выражение проверки имени.
Если всё же увидите непереведённую фразу — допишите её в `application/lang/en.php`, ключ это русский
текст ровно в том виде, в каком он на странице. Два правила, которые стоит знать:
* **никогда не добавляйте отдельное служебное слово** (предлог или союз, например `в`). Оно
подменяется внутри ещё не переведённых предложений и даёт мешанину вида «at поле имя
пользователя». Такие слова переводятся только вместе с фразой.
* если во фразе есть PHP-переменная, ключами делайте статические куски вокруг неё — в готовом тексте
на месте переменной подставлено значение, и строка целиком никогда не совпадёт.
Все разделы на двух языках — в [галерее скриншотов](docs/screenshots/README.ru.md).
Перевод включается только когда язык не русский; в русском режиме словарь даже не загружается,
поэтому накладных расходов нет.