Технічна локалізація ігор: шрифти, RTL, псевдолокалізація

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

Наші компетенції

Інші послуги студії

VR/AR/MR застосунки на замовлення

Вражайте клієнтів і навчайте команду у віртуальній реальності

Розробка ігор на Unity

Від ідеї до релізу — ігри, які запам'ятовуються

3D-моделювання та анімація

Оживимо ваш продукт в об'ємній графіці та анімації

VR-тренажери промислового обладнання

Тренуємо операторів на техніці без ризику і простою

AR-інструкції для виробництва

Покрокові підказки прямо на обладнанні — без паперу

Safety-тренажери

Відпрацювання НС і техніки безпеки без виходу на об'єкт

VR/AR-тренінги

Навчаємо персонал сервісу, адаптації та soft skills у VR

Навчальні вікторини

Перевірка знань у форматі гри — легко і без стресу

Корпоративні відеоінструкції

Зрозумілі ролики для навчання співробітників і клієнтів

Гейміфікація бізнес-процесів

Мотивуємо команду через ігрові механіки в KPI та HR

Застосунки для інфокіосків

Інтерактивні екрани для магазинів, стендів і офісів

VR/AR-інсталяції

Wow-ефект для брендів на виставках, івентах і в шоу-румах

Віртуальні виставки та музеї

Ваша експозиція доступна з будь-якої точки світу — 24/7

Event-квести та брендовані ігри

Незабутні ігри для конференцій та клієнтських івентів

Часті запитання

Останні роботи

  • image_games_mortal_motors_495_0.webp
    Розробка гри для компанії Mortal Motors
    1526
  • image_games_a_turnbased_strategy_game_set_in_a_fantasy_setting_with_fire_and_sword_603_0.webp
    Покрокова стратегія у фентезі сеттингу With Fire And Sword
    1030
  • image_games_second_team_604_0.webp
    Розробка ігри для компанії Second term
    657
  • image_games_phoenix_ii_606_0.webp
    3D-анімація – тизер для гри phoenix 2.
    738
  • image_training-quizzes_kids_shopping_quiz_614_0.webp
    Навчальна вікторина для дітей «Покупки в магазині»
    142

Німецькі складені слова вилазять за межі діалогового вікна? Арабські тексти йдуть зліва направо, ламаючи layout? Це не баги перекладу — це проблеми технічної локалізації. Локалізація інтерфейсів і переклад ігор — це системна робота з текстом, шрифтами, форматуванням, правилами відмінювання та розмірами UI під кожну мову. Гра, яка «перекладена», але не локалізована, виглядає як машинний переклад: текст вилазить за кнопки, числа відображаються без урахування локалі, а RTL-рядки не дзеркаляться.

Ми локалізували понад 20 проєктів за 10+ років у геймдеві, включаючи проєкти з 15 мовами (арабська, іврит, китайська). Ми гарантуємо якість завдяки багаторічному досвіду. Використовуємо Unity Localization — стандарт для Unity-проєктів. Він працює через StringTable (текстові рядки з ключами) та AssetTable (локалізовані асети). Таблиці експортуються в XLIFF або CSV для передачі перекладачам (XLIFF імпорт підтримується).

Ключовий принцип: у коді та Prefab'ах — тільки ключі, жодних хардкоджених рядків. Компонент LocalizedString на TextMeshProUGUI — обов'язкова архітектура. Порушення цього правила означає ручний пошук усіх текстових рядків по сцені — це сотні об'єктів при додаванні нової мови.

Як працює технічна локалізація?

Технічна локалізація (LOC пайплайн) починається з аудиту: перевіряємо код на хардкоджені рядки, UI на негнучкі layout-и. Потім налаштовуємо StringTable/AssetTable, зв'язуємо ключі з елементами. Експортуємо в XLIFF для перекладачів, імпортуємо назад з верифікацією. Після — псевдолокалізація та тестування. Для CJK-мов підключаємо Dynamic Font Asset, для RTL — дзеркалювання UI.

Основні кроки:

  1. Аудит коду та UI.
  2. Налаштування StringTable/AssetTable.
  3. Експорт у XLIFF, імпорт перекладів.
  4. Псевдолокалізація (тестування подовженими рядками).
  5. Інтеграція шрифтів: Dynamic Font Asset для CJK, RTL-дзеркалювання.
  6. Фінальне тестування та виправлення багів.

Чому псевдолокалізація незамінна?

До отримання реальних перекладів ми запускаємо псевдолокалізацію: подовжуємо всі рядки на 30–40% і додаємо випадкові символи. Це виявляє переповнення контейнерів за 2–3 дні замість виявлення на етапі інтеграції перекладів. Без псевдолокалізації ви ризикуєте отримати баги за пару тижнів до релізу. Порівняння: псевдолокалізація в 3 рази ефективніше виявляє проблеми з переповненням до передачі рядків перекладачам, тоді як реальні переклади — тільки після імпорту.

Що таке Dynamic Font Asset і навіщо він потрібен?

Для китайської, японської та корейської мов статичний шрифтовий атлас важить 15–30 MB. Dynamic Font Asset завантажує лише гліфи, що зустрілися в тексті, скорочуючи пам'ять до кількох сотень кілобайт — це в 15–60 разів менше, ніж статичний. Мінус — мікрофризи (0.5–2 мс) при першому рендері нового ієрогліфа, але для мобільних проєктів це прийнятно.

Характеристика Статичний Font Asset Dynamic Font Asset
Пам'ять 15–30 MB 0.5–2 MB (залежить від тексту)
Мікрофризи Ні Так (0.5–2 мс при нових гліфах)
Простота налаштування Готовий атлас Вимагає вказівки діапазонів Unicode

Для арабської та івриту обов'язкова підтримка RTL. У TextMeshPro є вбудований RTL режим (TMP_Text.isRightToLeftText = true), але одного прапорця недостатньо. Елементи UI теж мають дзеркалитися: кнопка «Назад» переміщується з лівого краю на правий, список читається справа наліво. Це вимагає спеціальної логіки в Layout Manager або перемиканих Prefab'ів з дзеркальним layout'ом для RTL-мов.

З нашої практики: на проєкті з підтримкою російської, англійської та німецької ми зіткнулися з тим, що німецькі складені слова (наприклад, Geschwindigkeitsbegrenzung) не переносяться в TextMeshPro за замовчуванням. Рішення — Hyphenation через TMP_Settings + підключення словника переносів для німецької. Після налаштування текст коректно переноситься, контейнер діалогу перестав переповнюватися.

Типові помилки при локалізації:

  • Хардкоджені рядки в коді та сценах — при додаванні мови доводиться шукати їх вручну.
  • Відсутність RTL-дзеркалювання UI — арабський текст іде зліва направо, ламаючи навігацію.
  • Ігнорування множинних форм — у російській три числа, в англійській два, в арабській шість.
  • Невикористання псевдолокалізації — баги з переповненням виявляються тільки після інтеграції перекладів.

Орієнтовні терміни

Масштаб Терміни (без урахування часу перекладу)
Додавання однієї мови в готовий пайплайн 3–7 днів
Побудова пайплайну локалізації з нуля (1–2 мови) 1–3 тижні
Повна локалізація проєкту (5–10 мов, включаючи RTL) 4–10 тижнів
Інтеграція із зовнішніми CAT-інструментами + автоматизація 1–3 тижні

Що входить у нашу роботу

Ми надаємо повний цикл локалізації під ключ:

  • Аудит поточного коду та UI на готовність до локалізації.
  • Налаштування пайплайну Unity Localization (або аналога для Unreal Engine).
  • Створення StringTable/AssetTable, інтеграція з CAT-інструментами.
  • Розробка Dynamic Font Asset для CJK та RTL-мов.
  • Псевдолокалізація та тестування переповнення UI.
  • Автоматизація імпорту/експорту перекладів.
  • Документація з підтримки локалізації для команди.

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