uk:admin_main:domain_localization

Переклад домену

Шапку, меню, підвал і сторінки домену можна показувати мовою глядача. Влаштовано це так само, як переклади гри: поряд із текстом лежить словник пар «оригінал → переклад», і при показі текст підмінюється. Перекладу немає — глядач бачить оригінал.

Екран — «Переклад» в адмінській панелі домену («Переклади» у новій адмінці). Відкрити його може адміністратор домену.

Мова лише про той текст, який написали ви. Кнопки, листи та інший текст самого рушія перекладаються самі й до цього словника стосунку не мають.

Вкладка «Налаштування»: мова домену, мови перекладу і на що падає неперекладене

  • Мова, якою написано домен — мова оригіналу. Поки її не вибрано, локалізації в домену немає взагалі: нічого не підмінюється, словник не читається.
  • Мови перекладу — галочки. Поряд із кожною «неперекладене показувати»: на яку мову падати там, де перекладу ще немає. Порожньо — одразу базова.
  • Рядок «Решта мов» — куди відправляти глядача, мови якого в домену немає.

Падати можна лише на мову, яку домен оголосив. Знімете галочку з мови — усе, що на неї падало, скинеться тут же, на екрані.

Вимкнути локалізацію («Локалізацію вимкнено») можна будь-коли: підміна перестане працювати одразу для всіх, а словник лишиться цілим.

Вкладка «Сторінки» перелічує сторінки домену і питає про кожну: перекладаємо її словником чи ні.

У сторінки може бути своя копія іншою мовою. Така копія завжди сильніша за словник: якщо вона є, глядач побачить її, а словник до сторінки не застосовується. Перетворити копію на пари словника нічим — або копія, або словник.

Третя вкладка — сама таблиця пар. Вона та сама, що у вкладці «Переклад» редактора гри: ті самі групи «неперекладені / перекладені / неперекладні», той самий фільтр, ті самі позначки «не перекладати». Як вона влаштована, докладно описано на сторінці Багатомовна гра.

Відмінність одна — селектор «Що перекладаємо» в рядку фільтра:

  • «Усе разом: домен і сторінки»;
  • «Домен: шапка, меню, підвал»;
  • «Сторінка …» — по одній.
«Усе разом» пише переклад у кілька словників. Рядок, який трапляється і в шапці, і на сторінці, — це один рядок таблиці, і правка запишеться у словник кожного місця, де рядок трапився. Потрібен сторінці свій переклад тієї самої фрази — звузьте «Що перекладаємо» до цієї сторінки.
  • Назва домену — вона ж у шапці і в заголовку вкладки браузера.
  • Шапка сайту, Меню сайту, Підвал сайту, Шапка у грі — html із розділу «Дизайн».
  • Сторінки домену — ті, що позначені на вкладці «Сторінки».

Не перекладається: css, адреси (ім’я домену, адреса сторінки), налаштування пошти й оплати, текст самого рушія і зміст ігор — в ігор свої переклади.

Листи домену йдуть із базовою назвою, не з перекладеною.

Шаблони {% match lang %} у дизайні домену не працюють — це прийом для завдань.

Меню домену — це скрипт, і підписи кнопок у ньому лежать рядками. Щоб рушій їх побачив, огорніть кожну в gt():

add_navbar({
  items: [
    {name: gt('ИГРЫ'), url: 'index.php'},
    {name: gt('АРХИВ'), url: 'archive.php'},
  ],
  ...
});

Далі підпис з’явиться у таблиці перекладів як звичайний рядок, і переклад підставиться на сервері, до того як сторінка поїде глядачеві.

  • gt() бере рядок просто в дужках, у лапках. gt(x) і gt('А' + b) рушій не чіпає — вони лишаться як є і повернуть своє значення.
  • Рядки без літер (цифри, знаки) не перекладаються.
  • Підписи без gt() у таблицю просто не потраплять, і ніхто про це не попередить.

Це працює в будь-якому html-блоці дизайну, не тільки в меню.

Кнопка «JSON» угорі екрана:

  • Скачати все — знімок словника цілком, усі мови.
  • Скачати неперекладене — файл для перекладача: тільки те, що лишилося.
  • Скачати (мова) і Скачати неперекладене (мова) — те саме по одній мові.
  • Завантажити з файлу, Копіювати в буфер, Вставити з буфера.

Завантаження не зберігає: воно править екран, а записує все кнопка «Зберегти». Піти зі сторінки з незбереженими правками браузер не дасть мовчки — запитає.

Завантаження зливає, а не заміняє: пари накладаються по одній. Порожній переклад у файлі означає «прибрати цю пару».

Приймаються обидва види файлів — і повний знімок, і файл перекладача.

Новий домен отримує словник базового у спадок — копією, один раз, у момент створення. Подальші правки словника базового домену до нього вже не приїдуть.

Назва в нового домену своя, тому успадкований переклад старої назви приїде в «Застарілі переклади», а нова лишиться неперекладеною.

  • Правка оригіналу відв’язує переклад. Змінили текст у дизайні — його переклад іде в «Застарілі переклади», звідки його можна прив’язати заново або видалити. Відкат дизайну в студії словники не відкочує.
  • Джерело — збережений дизайн, а не чернетка. Поправили шапку в студії — спершу збережіть її, потім оновіть цей екран.
  • Одна «Зберегти» пише одразу кілька речей — мови, позначки сторінок і словники. Якщо щось не записалося, червона смуга перелічить усе разом.
  • Неперекладений і ніяк не позначений рядок у словник не пишеться — порожніх пар там не буває.
  • Переклад, що загубив або вигадав підстановку (!username! і подібні), не збережеться: рушій скаже про це.

Раніше підписи меню перекладалися у браузері, викликом у тому самому блоці меню:

addTranslation('en', 'АВТОРАМ', 'ABOUT');

Він далі працює, і в доменів, що йдуть, його не забирають. Але він покриває лише підписи кнопок меню — ні шапку, ні підвал, ні сторінки, — і не каже, що ще не перекладено.

Подвійного перекладу не буде: якщо рядок переклав сервер, у браузер приїде вже англійський, і addTranslation його просто не знайде.

Для нового домену беріть gt() і цю сторінку.

  • uk/admin_main/domain_localization.txt
  • Востаннє змінено: 2026/09/18 06:51
  • (зовнішнє редагування)