Шапку, меню, підвал і сторінки домену можна показувати мовою глядача. Влаштовано це так само, як переклади гри: поряд із текстом лежить словник пар «оригінал → переклад», і при показі текст підмінюється. Перекладу немає — глядач бачить оригінал.
Екран — «Переклад» в адмінській панелі домену («Переклади» у новій адмінці). Відкрити його може адміністратор домену.
Мова лише про той текст, який написали ви. Кнопки, листи та інший текст самого рушія перекладаються самі й до цього словника стосунку не мають.
Падати можна лише на мову, яку домен оголосив. Знімете галочку з мови — усе, що на неї падало, скинеться тут же, на екрані.
Вимкнути локалізацію («Локалізацію вимкнено») можна будь-коли: підміна перестане працювати одразу для всіх, а словник лишиться цілим.
Вкладка «Сторінки» перелічує сторінки домену і питає про кожну: перекладаємо її словником чи ні.
У сторінки може бути своя копія іншою мовою. Така копія завжди сильніша за словник: якщо вона є, глядач побачить її, а словник до сторінки не застосовується. Перетворити копію на пари словника нічим — або копія, або словник.
Третя вкладка — сама таблиця пар. Вона та сама, що у вкладці «Переклад» редактора гри: ті самі групи «неперекладені / перекладені / неперекладні», той самий фільтр, ті самі позначки «не перекладати». Як вона влаштована, докладно описано на сторінці Багатомовна гра.
Відмінність одна — селектор «Що перекладаємо» в рядку фільтра:
«Усе разом» пише переклад у кілька словників. Рядок, який трапляється і в шапці, і на сторінці, — це один рядок таблиці, і правка запишеться у словник кожного місця, де рядок трапився. Потрібен сторінці свій переклад тієї самої фрази — звузьте «Що перекладаємо» до цієї сторінки.
Не перекладається: 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() і цю сторінку.