Итак, начнём с того, как в Unreal Engine в целом устроена локализация

В движке предусмотрен специальный инструмент — Localization Dashboard, который предоставляет достаточно широкий набор возможностей для перевода, нас больше всего интересуют: сбор текста, экспорт и импорт локализованных данных в формате .po.
Формат .po удобен для переводчиков, редакторов для них есть множество на любой вкус.

По мере роста проекта (особенно крупного) количество текста быстро увеличивается. Многие строки повторяются: одна и та же фраза может встречаться десятки раз в разных местах, и Unreal будет воспринимать каждую такую строку как уникальную.

Чтобы избавиться от дублирования и централизовать управление текстом, в Unreal существуют String Table'ы.
Вместо непосредственного ввода текста мы просто вставляем ссылку на строку в таблице. Обычно таблиц бывает несколько — логично разбивать их по категориям, чтобы облегчить жизнь локализаторам и самим разработчикам.

Вставка ссылки на строку
Вставка ссылки на строку

Выглядит это довольно удобно, но на практике возникает проблема: текста становится слишком много, с ним могут работать разные люди, и даже один человек может забыть, что уже добавлял нужную строку, да ещё и не вспомнит, в какую именно таблицу. Начинается хаос: одни и те же строки появляются в разных таблицах, какие‑то строки меняются в процессе разработки предположительно в одном месте — а по факту происходит изменение везде. Отличная среда для размножения багов.

Всё это подводит к очевидной мысли: необходимо решение, которое упростит работу с текстом, ускорит процесс и снизит количество ошибок. И у меня оно есть.


StringTableSearch_Plugin + Asset Search

Ясоздал плагин для Unreal Engine 4.27 — 5.6 который добавляет удобный инструмент для работы со StringTable'ами. Крайне прост в использовании.

Скачать его можно у меня на GitHub тут.

Для установки нужно распаковать zip архив в папку Plugins своего проекта.

На картинках снизу описан весь функционал. Рекомендую ознакомиться.
Copy Row Reference, например — существенно ускоряет монотонную работу по вбиванию ссылок на строку.

Unreal Engine 5.0+
Unreal Engine 5.0+
Unreal Engine 4.27
Unreal Engine 4.27

Тем не менее, остаётся ещё одна важная деталь: хочется иметь возможность искать конкретную строку не только в String Table'ах, но и во всех ассетах проекта. Ведь если строка используется в нескольких местах, логично понимать, где именно — чтобы не наломать дров, случайно изменив текст «в одном месте», попутно изменив его в сотне других мест.

К счастью, в Unreal Engine уже есть решение этой задачи - плагин Asset Search. Он позволяет искать по всем ассетам проекта, включая тексты. Всё, что нужно - просто включить его через Plugins.

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

Включите плагин Asset Search
Включите плагин Asset Search
Asset Search
Asset Search

Ссылки

Плагин StringTableSearch

Буду рад, если смог кому-то помочь!

Комментарии (0)