Особенности локализации в Agent Brain: Tricky Puzzles

В моей игре Agent Brain: Tricky Puzzles текст очень важен. В большинстве случаев он просто намекает на решение головоломки –тут важен исключительно смысл фразы, но на некоторых уровнях игроку нужно взаимодействовать с самим текстом, и тут уже одного перевода будет недостаточно.

В этом тексте я рассказываю о том, с какими сложностями столкнулся при локализации своей игры, и какие нашел решения.
Для кого-то это всё это может быть очевидным, а для кого-то, как для меня, неожиданностью, которую сложно было продумать заранее.

Пример 1:

В игре есть уровень, где можно встать на слово «ТУТ».

Особенности локализации в Agent Brain: Tricky Puzzles
Особенности локализации в Agent Brain: Tricky Puzzles

В каждом языке свои правила построения предложений, и если в одном языке слово «ТУТ» будет в конце предложения, то в другом оно может быть в начале или середине.
По дизайну уровня коллайдер, на который можно встать, должен находиться в конкретном месте.

Особенности локализации в Agent Brain: Tricky Puzzles

Решение здесь простое — подгонять пробелами текст так, чтобы слово «ТУТ» в разных языках оказалось точно на месте коллайдера.

Особенности локализации в Agent Brain: Tricky Puzzles

Пример 2:

В игре есть несколько уровней, где нужно взаимодействовать со словами.

Один из таких уровней — это уровень, где слово «КЛЮЧ» и есть ключ, который нужно взять, а затем открыть им дверь.

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

Основной текст локализуется, как обычно, с пропусками для нужных слов.

Особенности локализации в Agent Brain: Tricky Puzzles
Особенности локализации в Agent Brain: Tricky Puzzles
Особенности локализации в Agent Brain: Tricky Puzzles

А для интерактивных объектов решением стал скрипт, который в зависимости от языка, включает нужный игровой объект.

using UnityEngine; public class LanguageSpecificObjects : MonoBehaviour { [System.Serializable] public class LanguageObjects { public string languageCode; public GameObject[] objects; } public LanguageObjects[] languageObjects; void Start() { UpdateLanguageObjects(); } public void UpdateLanguageObjects() { if (LocalizationManager.instance != null) { string currentLanguage = LocalizationManager.instance.language; foreach (var langObj in languageObjects) { bool isActive = langObj.languageCode == currentLanguage; foreach (var obj in langObj.objects) { if (obj != null) { obj.SetActive(isActive); } } } } } }
  • Для каждого языка создается отдельный игровой объект (gameobject).
  • В скрипте задается ключ локализации и массив объектов (если нужно локализовать много объектов) для каждого языка.
  • Скрипт проверяет актуальный язык и делает активными те игровые объекты, которые ему соответствуют, и деактивирует те, которые не соответствуют.
Объекты для каждого языка
Объекты для каждого языка
Настройка локализации объектов в инспекторе
Настройка локализации объектов в инспекторе

***

Локализация таких моментов — сложный процесс, особенно на языки, с которыми не знаком. Переводчикам нужно дать подробное техническое задание, указав, как должен выглядеть текст: например, чтобы слово «ТУТ» было ближе к концу фразы, а слово «КЛЮЧ» в начале, и объяснить множество других нюансов, с которыми переводчики редко сталкиваются.

Вот с такими вызовами я столкнулся при локализации своей игры. Для кого-то это всё это может быть очевидным, а для кого-то, как для меня, неожиданностью, которую сложно было продумать заранее.

Возможно, мой опыт поможет кому-то сразу учесть такие моменты при локализации своей игры или постараться их избежать.

В любом случае, существует ключ к решению любой проблемы :)

Поиграть в демку и добавить в вишлист можно вот тут:

1515
4 комментария

Интересно! локализация всегда сложно

1
Ответить

Да, тут ещё много о чём можно написать, например о работе с шрифтами, особенно азиатскими – это если о техничесокй части.

А чего только стоит адаптация текста под разные культурные контектсы. Фразеологизмы, мемы, устойчивые выражения очень отличаются от стране к стране.

2
Ответить

Красавчик. Жду релиза!

1
Ответить

Интересные у вас кейсы)

У меня на опыте встречалось работа с числительными, тоже свои забавы есть)

Ответить