Локализация
Средний Обновлено 9 июл. 2026 г.
Содержание
Локализация встроена в пайплайн, а не прикручена сбоку: каждый язык получает собственный текст, озвучку и анимацию липсинка. Всё это производит одна и та же сборка.
Как это устроено
- Квесты пишутся на одном исходном языке (
source_cultureквеста, напримерen). - Переводы хранятся в CSV-сайдкарах
Loc/<Quest>.<culture>.csv, ключом служат стабильные id реплик. Непереведённые ключи откатываются к исходному тексту; исходный файл никогда не перезаписывается. - Культуры, которые собирает проект, перечислены в Project Settings → Plugins → Questwright Studio → Build Cultures (вкладка Localization управляет этим списком за вас).
Вкладка Localization
Добавляйте языки, смотрите покрытие перевода по каждому квесту и переводите недостающие реплики машинно со своим ключом Claude или OpenAI. Машинные результаты помечаются как «машинный, требует вычитки», так что ручную проверку легко отслеживать. Ключи хранятся у каждого пользователя локально и никогда не попадают в репозиторий, точно так же, как ключи для озвучки.

Сборка языков
На вкладке Build есть чекбокс для каждой культуры. Каждый собранный язык получает:
- собственные String Tables (диалоги, варианты выбора, текст журнала);
- собственную озвучку с голосовым составом для этого языка с вкладки Voice;
- собственное запекание липсинка из аудио этого языка.
Ассеты каждой культуры лежат в /L10N/<culture>/, а подменяет их штатная система
локализации движка.
Единственный нюанс: PIE и упакованная сборка
Unreal подменяет ассеты по культуре (аудио, лицевую анимацию) только в упакованных/приготовленных сборках; в PIE вы всегда слышите голос исходной культуры. Текстовая локализация работает везде, включая PIE. Это поведение движка, а не настройка, которую можно поправить; проверяйте локализованную озвучку в упакованной сборке.
Динамический текст и локализация
Плейсхолдеры {PlayerName} и собственные {Token} переживают перевод: подстановка происходит
в момент отображения через FText::Format, поэтому переводчики могут свободно переставлять
токены внутри предложения.