Когда мы занялись локализацией нашей игры, то поняли что встроенный в движок редактор нам не подходит. На тот момент он даже в мультилайн не умел (баг?). Возможно, он удобен для больших дядь, которые умеют во всякие Localization Service Provider (это вообще для кого?). Но для нас проще отправить Exсel’евский файлик и быть уверенными, что любой переводчик сможет с ним работать. В итоге мы написали свой редактор локейлов для UE4. Надеемся он и вам будет полезен!
Для чего эта штука нужна? Все очень просто: мы не можем заставить локализаторов установить UE4 и работать с нашим проектом напрямую. И мы не можем подготовить специальный билд игры, предназначенный для локализаторов (у нас лапки). Мы не знаем с какими сторонними утилитами готовы работать локализаторы и с какими форматами они работают. С некоторыми локализаторами мы даже напрямую связаться не можем, с ними работает наш издатель. Эта утилита позволяет конвертировать внутренний формат локейлов UE4 в то, что можно отправить людям, не знакомым с этим движком.
Так что именно она умеет? Во-первых, переводы можно править прямо в ней. Есть поиск и сортировка по нужным столбцам, удобно работает копипаста. По моему скромному мнению, наша утилита удобнее встроенного редактора локализаций в UE4. :) И при разработке мы пользовались только ей. Но, самое главное: эта штука умеет экспортировать переводы в табличку Excel (импорт, конечно, тоже есть). Получается такой результат:
А чего она не умеет? Естественно никакой локализации текстур, мешей и звуков нет. Только текст. Утилита не умеет собирать тексты (Gather) и компилировать локейлы в *.locres
файлы (Compile). Движок с этим справляется и сам. К сожалению, нет возможности добавлять комментарии. Они есть таблицах строк, но экспорта в локейлы не предусмотрено. А расширять формат UE4 в наши планы не входило.
Инструкция
Для начала нужно в Unreal Engine подготовить все для локализации: ссылка на статью об этом. Затем выполнить Gather и Compile для всех локализаций.
Дальше в утилите нужно открыть файл *.manifest из папки
[YOUR_project]\Content\Localization\Game
. Все локализации *.archive подтянутся автоматически.Можно работать. Для того чтобы изменения применились к строке нужно жать [Ctrl] + [Enter].
Сохраняем все опять в *.manifest, а все *.archive cохранятся автоматически.
После запускаем Unreal Engine и делаем Gather + Compile. И все!
Теперь о том как делать импорт и экспорт:
Не забываем в начале и в конце делать Gather + Compile в UE4.
Открываем *.manifest
Выполняем File -> Export… и выбираем в какой файл сохранить. Утилита не требует Excel, все происходит через библиотеку EPPlus 4.5.
Таблица разделена на 2 части. Верхние строки редактируемые (номер и ID естественно трогать нельзя), а все что лежит после красной строки:
--== ! DO NOT translate THE TEXT BELOW ! == service DATA ==--
трогать вообще нельзя.Непереведенные ячейки будут красными, так их легко найти переводчику, особенно если это вторая или третья итерация перевода.
После экспорта, я советую отсортировать все строки (из редактируемой части ессно) по ID. У нас так хоть какая-то логика сохраняется в текстах и переводчику проще понять что к чему относится.
Отправляем на перевод и ждем…
После того, как придет результат, не забываем отсортировать строки обратно по номеру (#).
В программе выбираем File -> Import… и, если все было сделано правильно, то загрузится перевод. Можно включить «глаз» (Hide Translated) и пощелкать по различным локейлам, чтобы проверить переведены ли все строки.
Далее жмем File -> Save As… и выбираем ваш *.manifest. Все.
Исходный код и программа
Утилита написана на C#, требует .Net 4.0 и пару пакетов из NuGet (они подтянутся автоматически). Исходники можно забрать отсюда:
https://github.com/rionix/LocalizationUE4
Периодически делаем релизы. Просто скачиваем, распаковываем и пользуемся:
https://github.com/rionix/LocalizationUE4/releases
Программа тестировалась только на нашей игре. Поэтому 100% гарантии работоспособности дать не могу. Если будут ошибки, замечания или предложения — пишите. Если прога форматнет ваш диск, украдет все ваши сбережения или убьет кота, то я ни при чем! :)
Надеюсь, утилита будет полезна не только нам, пользуйтесь на здоровье! Всем бобра!
Минутка саморекламы
Утилита прошла "обкатку боем" на нашей игре The Unexpected Quest:
https://store.steampowered.com/app/1307670/The_Unexpected_Quest/
В ней много текста, разбитого на пространства имен. Плюс к этому все локализации проходили в несколько этапов: сначала подготовили тестовую версию, потом выпустили пролог и затем основную версию. Локализацию на английский делали при помощи ребят из @allcorrect. Локализацию на китайский и немецкий нам делал издатель PQube. Во всех случаях мы использовали Excel файлики, а саму утилиту не высылали. Доработку текстов проводили в утилите, редактор UE4 практически не использовался. Каких-то замечаний по формату от локализаторов не получали. Сами никаких проблем с имортом не встретили. Работать было удобно. Попробуйте!
Sm1le291
Очевидно что он не умел в мультилайн, текст должен быть респонсивным, в зависимости от разрешения
maltsevda Автор
Тогда вот такой текст, пришлось бы разбивать на три и как-то программно их объединять в один:
netGendo
Не подскажите, что за игра на скрине?
maltsevda Автор
Это наша игра The Unexpected Quest, ссылка на нее есть в статье.
AllexIn
Хотел написать что это не отменяет абзацев, но вам уже написали.
Списки тоже никто не отменял.
Ну и ваши статьи тоже почему-то не одной строкой написаны.