Мультимовна локалізація ігор є важливим аспектом, що дозволяє досягти максимальної доступності вашої гри для гравців по всьому світу. Unity, одна з найпопулярніших ігрових платформ, надає розробникам безліч інструментів та можливостей для локалізації ігрового контенту.

Основний компонент мультимовної локалізації в Unity — це система глобалізації, яка дозволяє настроїти мови та вибирати відповідні переклади тексту, а також налаштовувати локальні налаштування для різних регіонів. Для початку, ви повинні додати всі необхідні мови у налаштуваннях проекту Unity.

Після додавання мов можна локалізувати текстові елементи, такі як написи на кнопках, діалоги та підказки повідомлень. Unity пропонує гнучку систему управління рядками з перекладами та множинними змінними для індивідуального налаштування кожного рядка. Крім тексту, ви також можете локалізувати зображення та звукові ефекти, щоб адаптувати гру до різних культур та уподобань.

Більше того, Unity надає зручні інструменти для тестування та налагодження локалізації, такі як симулятори різних мов та можливість перемикання мови під час гри для перевірки перекладів та налаштувань. Це дозволяє вам переконатися, що ваша гра виглядає і звучить усіма мовами так, як задумано, і не містить помилок або невідповідностей.

Як налаштувати мультимовну локалізацію в Unity: посібник з налаштування системи для гри

Крок 1: Підготовка текстових ресурсів

Першим кроком до створення мультимовної гри в Unity є підготовка текстових ресурсів різними мовами.Рекомендується створити текстові файли або таблиці Google Sheets для кожної мови, що містять переклади всіх текстових елементів у грі – діалогів, кнопок, підказок тощо. буд.

Крок 2: Створення та налаштування файлу рядка

Unity використовує файли рядка для організації та керування перекладами. Щоб створити новий файл рядка, клацніть правою кнопкою миші у вікні Проект, виберіть Створити -> Новий файл рядка, і наведіть ім'я (наприклад, «Localizations»).

Перейдіть до налаштування нового файлу рядка, додавши мови, які використовуються у вашій грі. Для цього виберіть файл рядка та редагуйте панель Інспектора, додаючи мовні налаштування (наприклад, «English», «French», «German»).

Крок 3: Заповнення файлів рядка перекладами

Поверніться до підготовлених текстових ресурсів різними мовами. Додайте кожну мову у файл рядка, вибравши його у вікні перегляду рядка. Потім додайте ключ та відповідний переклад для кожного текстового елемента. Повторіть цей процес для кожної мови.

Крок 4: Використання перекладів у коді

Тепер, коли ви налаштували переклади для всіх текстових елементів у грі, можна використовувати їх у своєму коді. Unity забезпечує прості методи доступу до перекладів з файлу рядка. Наприклад, можна використовувати string localizedText = LocalizationManager.GetTranslation("key"); для одержання перекладу тексту за ключом.

Крок 5: Тестування та доопрацювання

Не забудьте протестувати вашу гру різними мовами, щоб переконатися, що переклади відображаються правильно та відповідають очікуванням. Можливо, вам доведеться внести доробки в переклади або код, щоб виправити будь-які проблеми або невідповідності.

Вибір необхідних мов для гри

Для початку слід проаналізувати статистику використання мов на глобальному рівні. Деякі з найпопулярніших мов у світі включають англійську, іспанську, китайську, російську, арабську і французьку. Якщо гра створюється з глобальною аудиторією у вигляді, включення цих мов то, можливо логічним рішенням.

Однак такий великий набір мов може вимагати великих зусиль та ресурсів для локалізації. Тому, залежно від можливостей та бюджету розробника, доцільно визначити найбільш пріоритетні та релевантні мови для гри.

Важливим чинником під час виборів мов є географічне поширення цільової аудиторії гри. Різні регіони можуть мати свої переваги та варіанти мов. Наприклад, якщо гра націлена на азіатську аудиторію, то додавання японської, корейської, китайської чи тайської мов може бути гарною ідеєю.

Також доцільно проконсультуватися із спільнотою гравців та зібрати зворотний зв'язок від користувачів. Користувачі, які працюють над перекладом гри різними мовами, можуть запропонувати додаткові варіанти або запропонувати мови, які вони вважають важливими.

У результаті, вибір мов для гри має ґрунтуватися на потребах цільової аудиторії та можливостях розробника. Важливо врахувати як популярність мов, і регіональні переваги.

Підготовка перекладів ігрових текстів

Для успішної мультимовної локалізації гри в Unity необхідно правильно підготувати переклади ігрових текстів. У цьому розділі розглянемо, як це можна зробити.

Першим кроком необхідно створити файли з перекладами кожної мови, на які ви плануєте перекласти вашу гру.У Unity можна використовувати CSV-файли або Google Таблиці для зберігання текстів різними мовами. Переконайтеся, що кожен рядок у файлі містить ключове слово для перекладу, а відповідні переклади позначені у стовпцях для кожної мови.

Далі вам потрібно створити скрипт, який відповідатиме за завантаження перекладів у вашу гру. У цьому скрипті ви читатимете файли з перекладами, зчитуватимете значення для кожного ключа і зберігатимете їх у словник, який буде доступний у всій грі. Зазвичай такий скрипт називається "LocalizationManager".

Тепер ми можемо використати цей словник перекладів у коді гри. Замість використання жорстко закодованих рядків, ви звертатиметеся до словника і вимагатимете потрібний переклад по ключу. Це дозволить легко підтримувати кілька мов та динамічно змінювати мову у грі без необхідності зміни коду.

Крім того, для зручнішого керування перекладами ви можете використовувати спеціальні інструменти в Unity. Наприклад, ви можете використовувати Asset Store плагіни, які дозволяють команді перекладачів працювати безпосередньо в Unity, додавати нові ключі для перекладу та оновлювати переклади без необхідності зміни коду.

Створення файлів локалізації

Перед початком роботи з локалізацією Unity необхідно створити файли локалізації. Ці файли будуть містити переклади текстових елементів вашої гри різними мовами.

Unity надає зручний інструмент для створення та управління файлами локалізації – Localization Package Manager (LPM). Щоб створити новий файл локалізації, відкрийте LPM та виберіть вкладку «Localizations».

На цій вкладці ви побачите список усіх створених файлів локалізації у вашому проекті.Щоб створити новий файл, натисніть кнопку «Add Localization» і виберіть потрібну мову зі списку підтримуваних Unity.

Після вибору мови вам буде запропоновано вказати папку, де зберігатимуться файли локалізації. Рекомендується створити окрему папку для кожної мови, щоб забезпечити організацію та зручність роботи з файлами.

Після створення файлу локалізації в папці мови з'явиться новий файл із розширенням JSON. Цей файл міститиме ключові слова та відповідні переклади на вибрану мову.

Вам необхідно заповнити файл перекладами для кожного ключового слова. Для цього відкрийте файл локалізації та додайте нові рядки у форматі:

  • «ключове слово»: «переклад»
  • "another_word": "ще один переклад"
  • "third_word": "третій переклад"

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

Після створення файлів локалізації ви будете готові перекладати елементи вашої гри різними мовами та налаштовувати мультимовну локалізацію в Unity.

Імпорт файлів локалізації в Unity

  1. Створіть папку «Localization» у ресурсах проекту Unity.
  2. У папці «Localization» створіть окрему папку для кожної мови з відповідною назвою, наприклад, «ru» для російської мови.
  3. У папці кожної мови створіть файли локалізації для кожного елемента тексту. Рекомендується використовувати формат CSV (Comma-Separated Values) або XML (eXtensible Markup Language).
  4. Відкрийте Unity та перейдіть до вікна «Project».
  5. Перетягніть папку «Localization» із ресурсів проекту у вікно «Project».
  6. Перевірте, чи папка «Localization» правильно імпортувалася в Unity і містить усі необхідні мовні файли.

Після завершення цих кроків ваші файли локалізації будуть доступні в Unity для використання в грі. Ви можете налаштувати систему для вибору та встановлення потрібної мови в залежності від уподобань користувача. Для цього можна використовувати код або інтерфейс налаштувань.

Налаштування системи вибору мови

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

    для створення списку з елементами
    , де кожен елемент є мовою, яку ви хочете додати до гри.Наприклад:

Після створення списку мов можна додати обробник події для кожного елемента списку, щоб обробляти вибір мови. Обробник події може викликати метод, який змінюватиме поточну мову гри.

Unity також пропонує можливість автоматичного визначення мови системи за допомогою функції Application.systemLanguage . Ви можете використовувати цю функцію для встановлення мови гри під час запуску, ґрунтуючись на мові системи користувача.

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

Тепер ви знаєте, як налаштувати систему вибору мови в Unity, щоб гравці могли насолоджуватися грою своєю мовою.

Програмна підтримка мультимовності

Одним із ключових компонентів мультимовної локалізації в Unity є Localization System. Ця система дозволяє встановити різні мови та текстові ключі для кожної мови.

Для початку роботи з Localization System необхідно створити файли ресурсів для кожної мови програми. У цих файлах ви можете задати текстові ключі та відповідні переклади різними мовами. Unity підтримує різні формати файлів ресурсів, наприклад XML, JSON або простий текстовий файл.

Після створення файлів ресурсів, необхідно налаштувати систему для завантаження та використання цих ресурсів у вашому додатку. Unity пропонує зручний API для роботи з Localization System, який дозволяє отримувати переклади за ключом та поточною мовою.

Одним із способів використання Localization System є використання компонента Localize. Цей компонент дозволяє прив'язувати текстові поля до певних ключів ресурсів. Таким чином, при зміні мови текстові поля автоматично оновлюються та відображають переклади на вибрану мову.

Крім того, можна використовувати спеціальні функції API для отримання перекладів у коді вашої гри. Unity надає можливість отримувати переклади за допомогою таких функцій, як Localization.Get або Localization.GetString. Ці функції дозволяють отримувати переклади за ключом та поточною мовою з будь-якого місця вашого коду.

Завдяки програмній підтримці мультимовності в Unity, ви можете створити гру, яка буде доступна та зрозуміла для людей різних національностей та мов. Не забувайте враховувати особливості кожної мови під час роботи з мультимовністю, щоб забезпечити максимально комфортну взаємодію з грою для кожного користувача.

Тестування локалізації

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

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

Також важливо переконатися, що локалізовані рядки відповідають контексту гри. Особливо це є актуальним для ігор з великою кількістю тексту, де можуть виникати проблеми з розумінням сенсу фрази іншою мовою. Проходьте гру з використанням різних мов і зверніть увагу, що переклади відповідають контексту та передають потрібне повідомлення або інструкцію.

Не забувайте також тестувати локалізацію специфічних елементів гри, таких як меню, діалоги, таблиці лідерів. Переконайтеся, що вони також були правильно перекладені та відображаються відповідно до вибраної мови.

Тестування локалізації також включає перевірку різних розмірів тексту для різних мов. Різні мови мають різні довжини тексту, тому переконайтеся, що текст не виходить за межі елементів інтерфейсу або не обрізається.

Проведіть ретельне тестування локалізації на різних платформах та пристроях, щоб переконатися, що переклади та відображення тексту працюють належним чином у всіх сценаріях використання. Якщо ви виявляєте проблеми з локалізацією, внесіть виправлення та повторіть тестування.

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

Оптимізація продуктивності

  • Управління ресурсами: Відстежуйте використання ресурсів та видаляйте непотрібні об'єкти, компоненти та текстури, щоб уникнути витоків пам'яті та надмірного навантаження на процесор та графічну карту.
  • Оптимізація коду: Покращуйте продуктивність вашого коду, використовуючи ефективні алгоритми, уникайте зайвого використання циклів або рекурсії, а також мінімізуйте кількість функцій викликів.
  • Управління ассетами: Оптимізуйте завантаження ассетів, використовуючи стиснення текстур, відкладене завантаження, а також кешування даних для зменшення затримок та покращення швидкості завантаження гри.
  • Анімації та графіка: Використовуйте скорочення кількості полігонів у моделях, використовуйте скорочені анімації та оптимізуйте освітлення та ефекти, щоб знизити навантаження на графіку та покращити продуктивність.
  • Поділ ресурсів: Якщо ваша гра містить велику кількість текстів та локалізацій, ви можете розділити їх на окремі файли для більш ефективного та швидкого завантаження та рендерингу.
  • Тестування продуктивності: Регулярно тестуйте продуктивність гри на різних пристроях і платформах, щоб виявити та усунути можливі проблеми, пов'язані з продуктивністю.

Дотримуючись цих порад, ви зможете оптимізувати продуктивність вашої гри на Unity з мультимовною локалізацією та забезпечити її більш плавне та ефективне функціонування для гравців різними мовами.

Публікація гри з мультимовною локалізацією

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

При публікації гри з мультимовною локалізацією зверніть увагу на такі моменти:

1. Встановіть потрібну мову в опціях магазину під час публікації гри. Переконайтеся, що гра дозволяє користувачам вибирати мову в налаштуваннях.

2. Додайте всі необхідні ресурси та файли перекладу до гри. Переконайтеся, що вони правильно розпізнаються та завантажуються у грі.

3. Надайте достатню кількість інформації про підтримувані мови та доступні переклади в описі гри в магазині. Це допоможе користувачам зробити вибір та оцінити ваші зусилля у забезпеченні мультимовної локалізації.

4. Постійно відстежуйте відгуки користувачів щодо локалізації та перекладів у вашій грі. Покращуйте та оновлюйте переклади відповідно до відгуків та запитів користувачів.

Дотримуючись цих рекомендацій, ви зможете успішно опублікувати свою гру різними мовами та запропонувати користувачам повноцінний та мовоподібний геймплей. Бажаємо вам удачі у розповсюдженні вашої гри!

Як налаштувати систему мультимовної локалізації гри в Unity - Kozak

Для того, щоб успішно локалізувати гру, потрібно врахувати величезну кількість аспектів (про деякі з них можна почитати, наприклад, тут [посилання видалено модератором] ). У тому числі має значення і те, на якому движку створено проект. Ми вирішили заглибитися в тему і розповісти про особливості локалізації ігор на двох найпопулярніших двигунах: Unity та Unreal Engine.

Локалізація гри на Unity

  • функцію, що задає мову;
  • функцію, що завантажує в пам'ять пристрою текст із словника;
  • функцію, що перетворює завантажений текст на зрозумілий для Unity вигляд;
  • функцію, яка вставляє перекладений текст в інтерфейс гри;
  • менеджер локалізації – сценарій, що встановлює зв'язок між словниками та текстовими об'єктами сцени;
  • менеджер завантаження, завдання якого – дочекатися, поки спрацює менеджер локалізації (тобто гравець вибере мову), після чого завантажити нову сцену.

І ще трохи попрацювати руками:

  • прив'язати менеджер локалізації до кожного текстового об'єкта, що локалізується;
  • призначити кожному текстовому об'єкту сценарій, який отримує ключ потрібного тексту та вставляє локалізований текст у полі Text.

Важко? Не сперечаємось. На щастя, нещодавно в Unity з'явився свій інструмент для локалізації з назвою Localization, що говорить (він був і раніше, але на стадію пререлізу перейшов тільки в квітні 2021 року; та й зараз все ще сирий, судячи з великої кількості баг-репортів на форумі техпідтримки). Він автоматизує більшість необхідних дій, дозволяючи задавати локалі та залежно від них відтворювати звуки та виводити на екран різні рядки та малюнки. А ще він робить "псевдолокалізацію", т.е. е. машинний переклад, щоб можна було оцінити, як виглядатиме інтерфейс у тій чи іншій локалі. За допомогою Localization можна також експортувати дані не тільки до текстових файлів, а й до Google Sheets.

Втім, набагато раніше за стандартний інструмент з'явилися різноманітні сторонні плагіни, що дозволяють керувати локалізацією на проекті. Наприклад, плагін I2 Localization компанії Inter Illusion. Функціонал приблизно такий самий, як і у стандартного:

  • підтримка Google Translate;
  • автоматичний пошук відсутніх, дублюючих або перекладів, що не використовуються;
  • підтримка множини;
  • підтримка RTL (right-to-left) мов: арабської, івриту тощо. п.;
  • локалізація нетекстових об'єктів (малюнок або аудіофайл може змінюватись в залежності від мови);
  • керування шрифтами та текстурами (їх можна задати об'єкту залежно від мови).

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

UI Text, стандартний інструмент Unity для роботи з текстом, дуже простий і не має можливостей створення візуальних ефектів тексту (динамічних відображень, об'ємних тіней тощо). Проте для цього можна використовувати плагін TextMesh Pro, розроблений компанією Digital Native Studios. Він генерує об'ємну сітку, що дозволяє застосовувати до тексту різноманітні ефекти та навіть створювати анімацію. Плагін виявився дуже вдалим, тому корпорація Unity його придбала та безкоштовно постачає в комплекті з основним редактором з версії 2018 року.

Локалізація гри на Unreal Engine

У Unreal Engine проблеми локалізації вирішені набагато ґрунтовніше, ніж у Unity. Тут вже давно існує стандартний інструмент локалізації, тому у сторонніх плагінах немає великої потреби.

Варто зазначити, що в Unreal Engine поділяються поняття локалізації (адаптація гри до конкретного регіону чи мови шляхом перекладу тексту та додавання специфічних для локалі компонентів) та інтернаціоналізації (розробка гри таким чином, щоб вона легко адаптувалася до різних мов без змін її архітектури).

Локалізація Unreal побудована навколо особливого типу даних — FText, а інтернаціоналізація використовує бібліотеку ICU (International Components for Unicode).

Культурою (culture) в Unreal називається зведення правил оформлення тексту, прийнятих у відповідному регіоні.

  • обробки цифр та спецсимволів (знаки валют, відсотків, десяткові роздільники тощо);
  • форматування дати та часу;
  • передачі множини.

Культура позначається кодом, що складається з однієї-трьох частин:

  • обов'язковий двозначний літерний код за стандартом ISO 639-1 (наприклад, zh);
  • додатковий чотиризначний літерний код за стандартом ISO 15924 (наприклад, Hans);
  • додатковий двозначний код країни за стандартом ISO 3166-1 (наприклад, CN).

Приклад: zh-Hans-CN Тут zh – китайська мова, Hans – Hànyǔ Simplified (ханьюй спрощений), а CN вказує на варіант китайської мови, що використовується в КНР.

Бібліотека ICU (англ. International Components for Unicode, «міжнародні компоненти для стандарту Unicode»):

  • запитує в операційної системи, яку культуру використовувати;
  • розпізнає необхідний напрямок тексту;
  • виконує аналіз внутрішніх обмежень у тексті (наприклад, перенесення рядків).

Об'єктами локалізації в Unreal можуть бути текст (власне текст і шрифт), текстури, аудіо- та відеофайли, кат-сцени, порядок проходження сцен, анімація.

Інтерфейс локалізації в Unreal представлений "панеллю локалізації" – Localization Dashboard.

Одиницею локалізації є Localization Targets — модулі, що містять локалізаційні дані. Вони містять текст із зазначених джерел, зберігаються у файлі маніфесту і перекладаються в архівних файлах для кожної культури.Принцип локалізації виглядає приблизно так:

Так, як і в Unity, локалізація тут справа непроста.

Типовий порядок локалізації в Unreal:

  • Додаємо до проекту черговий текстовий елемент (кнопка з написом, плашка тощо).
  • Додаємо до проекту список культур, для яких виконуватиметься локалізація (en-US, ru-RU тощо).
  • Збираємо текстові елементи, що локалізуються, в систему локалізації.
  • Для кожного текстового елемента інтерфейсу в Unreal створюється об'єкт FText — це не просто рядок з текстом. Цей об'єкт має спеціальну структуру, яка підтримує зміну культури на ходу. присвоюється ключ виду «9567B129548DD2468752BA0F5». ідентифікації текстового елемента під час локалізації.
  • Система локалізації Unreal складає список локалізованих об'єктів FText цього проекту.
  • Експортуємо елементи інтерфейсу, що локалізуються, у вигляді файлів формату .po, переводимо їх і імпортуємо назад.

А як у Unreal справи з візуальними ефектами тексту? У 2019 році двигун отримав плагін Text 3D, за допомогою якого можна створювати ось такі шедеври:

Text 3D підтримує такі налаштування шрифту, як об'ємні тіні, фаски, округлення символів, зміна відстані між символами, словами та рядками, збереження пропорцій при зміні масштабу, вирівнювання тексту по горизонталі та вертикалі, застосування різних шрифтів, створення буквеної анімації, зміна анімованого тексту прямо під час гри та багато іншого. Бентежить лише одне: станом на 2022 Text 3D ще знаходиться в стадії бета-тестування, і невідомо, які з його можливостей доживуть до фінальної версії.

Якщо вам цікаві особливості роботи з текстом в інших ігрових движках, напишіть нам [посилання видалено модератором] і ми підготуємо огляд інструментів.