{{indexmenu_n>50}} ====== Багатомовна гра (переклади) ====== Одна гра, одна статистика, одні коди — а текст кожен гравець читає своєю мовою. Переклади лежать **поруч** із грою і підміняють текст під час показу; там, де перекладу немає, гравець бачить оригінал. Гравцеві, у якого мова збігається з мовою гри, не підміняється нічого взагалі. Це рекомендований спосіб. Старий прийом із шаблоном ''{% match lang %}'' ([[uk:authors_main:task_editor:advanced:edit_templates#як_зробити_багатомовну_гру|Шаблони]]) продовжує працювати, але нові ігри краще робити перекладами: текст завдання не перетворюється на простирадло з N копій, правка верстки не розмножується мовами, а редактор показує, що ще не перекладено. ===== Увімкнення ===== У [[uk:authors_main:task_editor:editor|редакторі гри]], вкладка **"Налаштування гри"**, блок **"Локалізація"**: * **Мова гри** — мова, якою гру написано. Доки її не вибрано, жодної локалізації в гри немає: нічого не рахується, нічого не зберігається, редактор виглядає як завжди. * **Мови перекладу** — галочки мов, на які гру перекладають. Поруч із кожною — **"падає на"**: якою мовою показувати те, що цією ще не перекладено. Порожньо — одразу мовою гри. * Рядок **"інші мови"** — куди відправляти гравця, мови якого в гри немає взагалі. Приклад: гру написано російською, перекладено українською та англійською, а польська падає на українську (вона ближча за російську). Гравець-поляк побачить польський текст там, де він є, український — там, де польського ще немає, і російський — там, де немає й українського. Щойно з'явилася хоча б одна мова перекладу, у редакторі з'являється вкладка **"Переклад"**. ===== Вкладка "Переклад" ===== Це таблиця пар «оригінал → переклад». Ліворуч рядок із гри, праворуч поле для перекладу. * **Рядки збираються автоматично.** Великий текст (завдання, підказка, афіша, фінішний текст) ріжеться на абзаци; короткі поля (назва гри, назва завдання, назва коду, опис підказки, формат відповіді) йдуть цілком. Розмічати в тексті нічого не треба. * **Однаковий текст перекладається один раз на всю гру.** Якщо рядок трапляється в кількох місцях, поряд із ним стоїть **"місць: N"** — наведіть мишу, щоб побачити де. Правка такого рядка змінює його всюди. * **Стан рядка** видно значком: свій переклад, //з мови X// (прийшло ланцюжком), //база// (перекладу немає) або //не перекладається//. * **Повнота** показується двома числами: скільки перекладено цією мовою і скільки вийде з урахуванням ланцюжка. Друге число саме по собі оманливе — воно ховає неперекладене за чужою мовою. * **Дві вкладки** — «Рядки» та «Посилання та файли»: адреси перекладають рідко і з іншого приводу, тому вони не заважають у спільному списку. Лічильник на вкладці каже, чи є там узагалі щось. * **Групи рядків** — «неперекладені», «перекладені», «неперекладні». Це не вибір одного з трьох, а перемикачі: вони складаються. Типово ввімкнені лише неперекладені — це і є робота; перекладені вмикають, коли йдуть вичитувати готове, неперекладні — коли треба зняти позначку. Групи однакові на обох вкладках, а числа на них рахуються за поточною. ==== Розмітка всередині рядка ==== Жирний, посилання, картинки та шаблони всередині абзацу в перекладі не пишуться руками: на їхньому місці стоять **чипси** — маленькі рамки з номером. Клацніть по чипсу — він стане в переклад там, де стоїть курсор. Чипси можна переставляти (порядок слів у мовах різний), але кожен має бути в перекладі рівно один раз — інакше переклад не збережеться і редактор про це скаже. Так само поводяться **підстановки** — ''!username!'', ''!task_n!'' та інші: вони лишаються в перекладі як є, просто в потрібному місці фрази. Корисний наслідок: самі теги, адреси посилань і класи живуть лише в оригіналі. Виправили посилання в завданні — воно змінилося в усіх мовах одразу. ==== Що не перекладається ==== * **Коди-відповіді не перекладаються ніколи.** Це й робить статистику спільною. Відповіді різними мовами просто дописуються синонімами через кому в тому самому коді. * **Не перекладати цей рядок** — перемикач у кінці рядка таблиці, два режими: «не перекладати цією мовою» і «не перекладати ніде». Для брендів, власних назв, латинських цитат. Такі рядки йдуть із «неперекладених» і не заважають лічильнику повноти дійти до 100%. * **''translate="no"''** у HTML завдання — сильніший спосіб: такий шматок не стане рядком узагалі, і його не зачепить навіть автопереклад браузера. Для кодових слів і відповідей усередині тексту це важливіше, ніж здається: автоматично перекладене кодове слово ламає гру. ==== Посилання та файли ==== Друга вкладка таблиці, з тими самими групами. Адреси картинок, звуків, відео та посилань за замовчуванням **не** перекладаються — майже всі вони мовно-незалежні. Але переклад адреси завести можна: так гравець потрапляє на сторінку своєю мовою або отримує озвучення своєю мовою, а абзац і верстка лишаються одні на всіх. У рахунок повноти ці рядки не йдуть. Субтитри оверлеєм робити не треба — HTML це вже вміє: кілька '''' в одному ''