Редактор локализаций для UE4

Когда мы занялись локализацией нашей игры, то поняли что встроенный в движок редактор нам не подходит. На тот момент он даже в мультилайн не умел (баг?). Возможно, он удобен для больших дядь, которые умеют во всякие Localization Service Provider (чего?). Но для нас проще отправить Exel’евский файлик и быть уверенными, что любой переводчик сможет с ним работать. В итоге получилось это:

Translation Editor for UE4
Translation Editor for UE4

Для чего эта штука нужна и что она умеет? Во-первых, переводы можно править прямо в ней. Есть поиск и сортировка по нужным столбцам, удобно работает копипаста. Но, самое главное: эта штука умеет экспортировать переводы в табличку Excel (импорт ессно тоже есть). Получается такой результат:

Пример экспорта в Excel
Пример экспорта в Excel

Инструкция

  • Для начала нужно в 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 (они подтянутся автоматически). Исходники можно забрать отсюда:

Периодически я делаю релизы. Просто скачиваем, распаковываем и пользуемся:

Программа тестировалась только на нашей игре. Поэтому 100% гарантии работоспособности дать не могу. Если будут ошибки, замечания или предложения — пишите. Если прога форматнет ваш диск, украдет все ваши сбережения или убьет кота, то я ни при чем 😊

Надеюсь, утилита будет полезна не только нам, пользуйтесь на здоровье! Всем бобра!

104
22 комментария