Двуязычный интерфейс (RU/EN) с автоопределением + документация на двух языках
Панель: - engine/main/lang.php: класс Lang, автоопределение языка (?lang= -> cookie -> Accept-Language -> конфиг) - перевод применяется к готовому ответу через ob_start(): покрывает всю панель, админку и письма, не требуя правки 200 файлов шаблонов; отсутствующая фраза остаётся русской - замена только на границах слов, иначе короткий ключ портил длинные слова (Модуль -> Modуль) - AJAX-ответы переводятся отдельно (json_encode экранирует кириллицу в \uXXXX) - application/lang/en.php: 657 переводов; ru.php как точка расширения - переключатель RU/EN в шапке кабинета, админки и в подвале страницы входа - 'lang' в config.php — язык по умолчанию - проверено обходом 20 разделов: 0 непереведённых фраз, 0 мешанины языков, 0 фаталов Документация — теперь на русском и английском: - README.en.md, CHANGES.en.md, SECURITY.en.md, GUIDE.en.md - переключатели языка в начале каждого документа - раздел «Язык интерфейса» в инструкции: как работает, как добавить свой язык
This commit is contained in:
+25
-2
@@ -1,3 +1,5 @@
|
||||
**Русский** · [English](CHANGES.en.md)
|
||||
|
||||
# Что изменено по сравнению с оригиналом
|
||||
|
||||
Оригинал: **HostinPL 5.6** в виде «nulled»-сборки (форк `Xopowblu-4EJlOBEK/HostinPL-5.6`),
|
||||
@@ -153,7 +155,28 @@ Node.js берётся из NodeSource **по HTTPS с проверкой клю
|
||||
|
||||
---
|
||||
|
||||
## 8. Брендинг и даты
|
||||
## 8. Языки интерфейса: русский и английский
|
||||
|
||||
Оригинал был только на русском, весь текст вшит в шаблоны. В сборке появился слой перевода:
|
||||
|
||||
* `engine/main/lang.php` — класс `Lang` и глобальный помощник `t()`
|
||||
* `application/lang/ru.php`, `application/lang/en.php` — словари
|
||||
* Порядок выбора языка: параметр `?lang=` → cookie `lang` → **заголовок браузера
|
||||
`Accept-Language`** → значение по умолчанию из конфига
|
||||
* Переключатель (RU / EN) в шапке кабинета, админки и в подвале страницы входа
|
||||
* Фразы, которых нет в словаре, остаются на русском — из интерфейса ничего не может пропасть
|
||||
|
||||
Перевод применяется к готовому ответу через `ob_start()`, поэтому 200 файлов шаблонов
|
||||
переписывать не понадобилось, и покрытие сразу распространяется на админку и письма.
|
||||
Замена работает только на границах слов: без этого короткий ключ портил длинные слова
|
||||
(«Мод» превращал «Модуль» в «Modуль», «день» делал из «деньги» «dayги»).
|
||||
|
||||
Полнота проверена обходом 20 разделов: непереведённых фраз не осталось, мешанины языков нет.
|
||||
Подробности — в [ИНСТРУКЦИЯ.md](ИНСТРУКЦИЯ.md), раздел «Язык интерфейса».
|
||||
|
||||
---
|
||||
|
||||
## 9. Брендинг и даты
|
||||
|
||||
* Год в подвалах: `2020©` → `2026©` (`views/common/footer.php`, `views/common/loginheader.php`)
|
||||
* Название и описание — REDL.IO: `application/config.php` (`description`, `keywords`,
|
||||
@@ -169,7 +192,7 @@ Node.js берётся из NodeSource **по HTTPS с проверкой клю
|
||||
|
||||
---
|
||||
|
||||
## 9. phpMyAdmin
|
||||
## 10. phpMyAdmin
|
||||
|
||||
Панель ссылается на `/phpmyadmin` из админки. Оригинальный установщик ставил phpMyAdmin через
|
||||
Apache, что на nginx не работало. Теперь он ставится из репозитория дистрибутива и отдаётся
|
||||
|
||||
Reference in New Issue
Block a user