====== Переклад домену ====== Шапку, меню, підвал і сторінки домену можна показувати мовою глядача. Влаштовано це так само, як [[uk:authors_main:game_management:localization|переклади гри]]: поряд із текстом лежить словник пар «оригінал → переклад», і при показі текст підмінюється. Перекладу немає — глядач бачить оригінал. Екран — **«Переклад»** в адмінській панелі домену (**«Переклади»** у новій адмінці). Відкрити його може адміністратор домену. Мова лише про той текст, який написали **ви**. Кнопки, листи та інший текст самого рушія перекладаються самі й до цього словника стосунку не мають. ===== Налаштування ===== {{ :admin_main:domain_translate_settings_uk.png?800 |Вкладка «Налаштування»: мова домену, мови перекладу і на що падає неперекладене}} * **Мова, якою написано домен** — мова оригіналу. Поки її не вибрано, локалізації в домену немає взагалі: нічого не підмінюється, словник не читається. * **Мови перекладу** — галочки. Поряд із кожною **«неперекладене показувати»**: на яку мову падати там, де перекладу ще немає. Порожньо — одразу базова. * Рядок **«Решта мов»** — куди відправляти глядача, мови якого в домену немає. Падати можна лише на мову, яку домен **оголосив**. Знімете галочку з мови — усе, що на неї падало, скинеться тут же, на екрані. > Вимкнути локалізацію («Локалізацію вимкнено») можна будь-коли: підміна перестане працювати одразу для всіх, а словник лишиться цілим. ===== Сторінки ===== Вкладка **«Сторінки»** перелічує сторінки домену і питає про кожну: перекладаємо її словником чи ні. У сторінки може бути **своя копія** іншою мовою. Така копія завжди **сильніша за словник**: якщо вона є, глядач побачить її, а словник до сторінки не застосовується. Перетворити копію на пари словника нічим — або копія, або словник. ===== Переклади ===== Третя вкладка — сама таблиця пар. Вона **та сама**, що у вкладці «Переклад» редактора гри: ті самі групи «неперекладені / перекладені / неперекладні», той самий фільтр, ті самі позначки «не перекладати». Як вона влаштована, докладно описано на сторінці [[uk:authors_main:game_management:localization#вкладка_переклад|Багатомовна гра]]. Відмінність одна — селектор **«Що перекладаємо»** в рядку фільтра: * **«Усе разом: домен і сторінки»**; * **«Домен: шапка, меню, підвал»**; * **«Сторінка ...»** — по одній. > **«Усе разом» пише переклад у кілька словників.** Рядок, який трапляється і в шапці, і на сторінці, — це один рядок таблиці, і правка запишеться у словник кожного місця, де рядок трапився. Потрібен сторінці свій переклад тієї самої фрази — звузьте «Що перекладаємо» до цієї сторінки. ===== Що перекладається ===== * **Назва домену** — вона ж у шапці і в заголовку вкладки браузера. * **Шапка сайту**, **Меню сайту**, **Підвал сайту**, **Шапка у грі** — html із [[uk:admin_main:domain_menu|розділу «Дизайн»]]. * **Сторінки домену** — ті, що позначені на вкладці «Сторінки». Не перекладається: css, адреси (ім’я домену, адреса сторінки), налаштування пошти й оплати, текст самого рушія і **зміст ігор** — в ігор [[uk:authors_main:game_management:localization|свої переклади]]. Листи домену йдуть із **базовою** назвою, не з перекладеною. Шаблони ''{% match lang %}'' у дизайні домену не працюють — це прийом для завдань. ===== Текст усередині скриптів: gt() ===== Меню домену — це скрипт, і підписи кнопок у ньому лежать рядками. Щоб рушій їх побачив, огорніть кожну в ''gt()'': add_navbar({ items: [ {name: gt('ИГРЫ'), url: 'index.php'}, {name: gt('АРХИВ'), url: 'archive.php'}, ], ... }); Далі підпис з’явиться у таблиці перекладів як звичайний рядок, і переклад підставиться **на сервері**, до того як сторінка поїде глядачеві. * ''gt()'' бере **рядок просто в дужках**, у лапках. ''gt(x)'' і ''gt('А' + b)'' рушій не чіпає — вони лишаться як є і повернуть своє значення. * Рядки без літер (цифри, знаки) не перекладаються. * Підписи **без** ''gt()'' у таблицю просто не потраплять, і ніхто про це не попередить. Це працює в будь-якому html-блоці дизайну, не тільки в меню. ===== JSON: вивантажити і завантажити ===== Кнопка **«JSON»** угорі екрана: * **Скачати все** — знімок словника цілком, усі мови. * **Скачати неперекладене** — файл для перекладача: тільки те, що лишилося. * **Скачати (мова)** і **Скачати неперекладене (мова)** — те саме по одній мові. * **Завантажити з файлу**, **Копіювати в буфер**, **Вставити з буфера**. Завантаження **не зберігає**: воно править екран, а записує все кнопка **«Зберегти»**. Піти зі сторінки з незбереженими правками браузер не дасть мовчки — запитає. Завантаження **зливає, а не заміняє**: пари накладаються по одній. Порожній переклад у файлі означає «прибрати цю пару». Приймаються обидва види файлів — і повний знімок, і файл перекладача. ===== Новий домен ===== Новий домен отримує словник базового **у спадок** — копією, один раз, у момент створення. Подальші правки словника базового домену до нього вже не приїдуть. Назва в нового домену своя, тому успадкований переклад старої назви приїде в **«Застарілі переклади»**, а нова лишиться неперекладеною. ===== Що варто знати ===== * **Правка оригіналу відв’язує переклад.** Змінили текст у дизайні — його переклад іде в «Застарілі переклади», звідки його можна прив’язати заново або видалити. Відкат дизайну в студії словники не відкочує. * **Джерело — збережений дизайн, а не чернетка.** Поправили шапку в студії — спершу збережіть її, потім оновіть цей екран. * **Одна «Зберегти» пише одразу кілька речей** — мови, позначки сторінок і словники. Якщо щось не записалося, червона смуга перелічить усе разом. * **Неперекладений і ніяк не позначений рядок у словник не пишеться** — порожніх пар там не буває. * **Переклад, що загубив або вигадав підстановку** (''!username!'' і подібні), не збережеться: рушій скаже про це. ===== Старий спосіб: addTranslation() ===== Раніше підписи меню перекладалися у браузері, викликом у тому самому блоці меню: addTranslation('en', 'АВТОРАМ', 'ABOUT'); **Він далі працює**, і в доменів, що йдуть, його не забирають. Але він покриває лише підписи кнопок меню — ні шапку, ні підвал, ні сторінки, — і не каже, що ще не перекладено. Подвійного перекладу не буде: якщо рядок переклав сервер, у браузер приїде вже англійський, і ''addTranslation'' його просто не знайде. Для нового домену беріть ''gt()'' і цю сторінку. ===== Дивіться також ===== * [[uk:admin_main:domain_menu|Налаштування меню домену]] — як влаштовано блок меню. * [[uk:authors_main:game_management:localization|Багатомовна гра]] — переклади гри; таблиця та сама.