Когда мы занялись локализацией нашей игры, то поняли что встроенный в движок редактор нам не подходит. На тот момент он даже в мультилайн не умел (баг?). Возможно, он удобен для больших дядь, которые умеют во всякие Localization Service Provider (чего?). Но для нас проще отправить Exel’евский файлик и быть уверенными, что любой переводчик сможет с ним работать. В итоге получилось это:
Спасибо за утилиту. Хотя вот прямо сейчас у меня нет надобности ее опробовать, но в будущем очень даже вероятно, понадобится. Круто, что поделились.
В дополнение к статье, привожу ссылку на демо нашей игры (в ней сейчас 4 локализации). Локализацию на английский делали при помощи ребят из AllCorrect. Локализацию на китайский и немецкий нам делал издатель PQube. Во всех случаях мы использовали Excel файлики сгенерированные при помощи утилиты. Ну т.е. "обкатка боем" была.
Комментарий недоступен
а тот момент он даже в мультилайн не умел (баг?)Я пытался это пофиксить. Лазял по сурсам часов 5 пока не нашел, где отрисовка этого бокса. Добавил макрос в декларации, чтобы бокс стал мультилайновым. Чуток потестил и радостно запушал им пулл реквест. Они тоже особо не смотрели и радостно смерджили. Потом вышла новая версия движка с моим мультилайном, а интерфейс стал дико глючить и разъезжаться при определенных условиях, которые я не углядел. Мне было кринжово, с тех пор не смотрел, что там. Но если мультилайна до сих пор нет, то это значит они откатили мои изменения, вместо того чтобы пофиксить.
Я еще пытался это пофиксить сам конечно. Со слейтом знаком, писал сложные едитор екстеншены когда эта возможность еще не была задокументирована. Так вот, нихера у меня не получилось. Код там **КРАЙНЕ** запутанный. Всё в макросах, ебнутом инхеритансе, каких-то байндингах через жопу и неадекватном слейте. Скорее всего, нужно переписывать большие куски кода. Джуном, и может даже мидлом, это не починить. Тут надо быть топовым в мире специалистом. Они у них есть, но им не до этого, видимо. Как же, надо срочно добавить новую совместимость с каким-нить телеком или чайником и поломать пару систем в процессе.
В 4.23 вроде уже работает, но я тоже стараюсь туда не заглядывать. :) Даже чинить не пытался, потому что было понятно - через UE мы игру не локализуем. Был вариант выгружать все в PO формат, но я не нашел бесплатных и удобных редакторов. Да и ХЗ как разные студии переводчиков будут с ними работать: слова там подсчитать и т.п. В итоге вот и вышла эта утилитка.
Привет!
Спасибо, что раскрываете тему. Инфы по локе в UE явно маловато.
Интересная программка. И, конечно, необходимая, если вы не пользуетесь никакими CAT-программами, поскольку редактор переводов в UE — абсолютный ужас. Да и даже если отдавать потом профикам или использовать какую-то CAT-программу самим, у многоязычного табличного формата типа эксельки есть явные преимущества относительно PO, который в UE используется для экспорта по умолчанию.
Посмотрел, однако, формат, который испольузется у вас в эксельке, и у меня вопрос: почему вынесли SERVICE DATA вниз таблицы отдельно? На это есть какие-то технические причины, которые я не улавливаю? Просто было бы куда лучше оставить эти данные в отдельных столбцах прямо в основной таблице: так контекст был бы виден переводчику сразу (Source Reference очень помогает при переводе, плюс по нему можно сортировать — и получать более-менее хорошую группировку строк), искать и фильтровать по нему (фильтрация по asset name или кусочку имени, например, очень помогает увидеть все строки, так или иначе связанные с одним понятием или ассетом), ну и так далее. Плюсов много, но есть один очень важный: если бы все метаданные были в той же таблице, что и данные, а не под ней, то файл стал бы совместим с CAT-программами — а все стоящие переводчики сейчас только в них и работают, прямо в файлах очень редко когда переводят, разве что мелочь всякую. То есть формат таблицы (навскидку) #, Namespace, ID, Source Reference, Comments, Source Locale, Target Locale #1, ..., Target Locale #N без «лишних» данных внизу был бы как минимум универсальнее, а на мой профессиональный взгляд попросту лучше во всех отношениях.
А как вы вообще с текстом работаете в игре? У вас текст прямо в ассетах сидит или в стринг тейблс? Если в таблицах, то это ассеты или CSV-шки? Вообще, я бы с радостью пообщался с вами — у меня нехватка знаний по Unreal Engine (информации о локе вообще немного, а уж о том, как люди реально работают с текстом в UE и того меньше), зато есть чем поделиться про локализацию (я 15 лет перевожу и 4 года управляю проектами по локализации). Если вам это интересно, давайте поболтаем :)
Я нынче работаю лок менеджером в компании, где несколько больших игр на UE. И текущий подход к работе с текстом мне не нравится. У нас есть идеи, как допилить редактор, чтобы было не так больно работать с текстом и локой, но это требует немало ресурсов. Сначала хочется понять, а не слишком ли я заморачиваюсь, не упускаю ли я какой-то другой подход, который не требует таких вложений.
Привет!
Если хочется пообщаться по поводу локализации в UE4, то пишите на мыло maltsevda@yandex.ru. А тут коротенько:
1. Формат проектировал так, чтобы локализатор работал только с нужной ему информацией. Все "лишнее" вынес вниз. Возможно кому-то эта информация нужна, но у нас ни разу ее не спрашивали.
2. Комменты к тексту - это очень полезная фича. Но на уровне локейлов UE4 ее нет. Можно добавлять комменты только к таблицам строк... вроде. Но как их удобно вытаскивать, я пока не понимаю. Возможно стоит расширять формат UE4 своим файликом. В общем проблема есть, но как ее решать, пока не задумывался.
3. В игре у нас все или в таблицах строк или в отдельном С++ файле. В ассетах только ссылки на таблицы строк. Хотя вру. Еще в Data Table могут быть строки в чистом виде. Раньше мы строки кидали как попало, но столкнулись с некоторыми проблемами и пришлось все аккуратно "разложить".
В общем если есть предложения или вопросы - пишите. Обсудим :)