UE4 .locres online editor v1.2, by Kly_Men_COmpany!

(Return to repo)
Binary files:Size:

Loaded .locres:Chunks: Translated / Texts


Инструкция:

Парсер для расшифровки и пересоздания .locres файлов из-под Unreal Engine 4.

Вы сможете загрузить файл сюда и получить текст из него. Поработать с этим текстом в любом другом месте, потом вставить его сюда – и собрать обратно в бинарный файл! Вам даже не потребуется хранить копию оригинала, ведь результат всегда воссоздаётся заново.

Для начала перетащите .locres файлы в верхнее поле, или нажмите на него, чтобы выбрать файлы в диалоговом окне.

Обратите внимание, что поле СРАЗУ очищается, но при этом – ваши файлы появляются в таблице ниже.

В первом столбце – имя, под которым зафиксирован каждый файл: это ссылка, нажмите чтобы непосредственно «скачать» любой из файлов обратно.

Файлы выбраны, но ещё не расшифрованы. Можете загрузить только нужные вам сейчас (по кнопке «Load!»), или сразу все через кнопку «Load and free all» – тогда успешно загруженные будут сразу удалены из верхней таблицы (ручное удаление – по кнопке «Free»).

Теперь, успешно загруженные и распарсенные файлы попадают во вторую таблицу. В первом столбце можно изменить их названия (но здесь все имена должны быть уникальными, в отличие от верхней таблицы).

Кнопка «Save!» воссоздаст бинарный файл из того, что есть в памяти – и поместит его опять в первую таблицу. Вообще говоря, файл будет другим, но игра должна воспринимать его как оригинальный. Нажмите на имя-ссылку, чтобы сохранить результат в настоящий файл.

Кнопка «Edit» переведёт файл в памяти в текстовое представление, и выведет его в нижнее поле. Можно преобразовать так сразу все открытые файлы второй таблицы, нажмите «Export all to text».

Кнопки «Delete» (или «Delete all») удаляют выбранные файлы из памяти (или сразу все).

После работы с текстом нажмите кнопку «Import from text» – тогда все определённые в вашем тексте файлы будут записаны в память во вторую таблицу, заменяя вхождения с теми же именами.

Чтобы «переварить» введённый текст и просто отобразить его заново – поможет кнопка «Reparse text» (это как импорт и экспорт, но без промежуточного сохранения).

Текст экспортируется вот в таком формате:


<FILE> "имя_файла.locres" (двоичный_заголовок)
<NAME> "название_блока_строк":
<TEXT> "код_идентификатор" (хэш_оригинала)
"строка текста"

– здесь часть <FILE> представляет собой всё содержимое одного файла, и ему принадлежит всё, что идёт ниже до следующего <FILE>. Часть <NAME> – это «namespace» блока строк Unreal Engine, иногда назван пустой строкой; ему принадлежит всё ниже до следующего <NAME> или <FILE>.

Часть <TEXT> – это описание одной строки в игре, оно однозначно определяется своим кодом-идентификатором (ну и блоком, в котором расположено). Хэш оригинала нужен игре для того, чтобы отвергать такие локализованные строки, у которых он перестал совпадать с оригинальной строкой – поэтому вы не должны изменять эти хэши (как и коды, имена блоков и двоичные заголовки файлов – во время работы не трогайте их!)

После поля <TEXT> записывается сама текстовая строка, обязательно в кавычках. Однако, когда несколько разных ключей в одном блоке фактически используют тот же самый текст – он будет выводиться единожды, после нескольких <TEXT> подряд. В принципе, вы можете разделить их, и вставить туда другие варианты локализации этого текста.

Эта программа работает со строками как с массивами «переводов» – это значит, что хотя игра и хранит в каждой «строке» лишь одну строчку текста – здесь можно присвоить одной и той же строке несколько «переводов». Например, первым переводом желательно оставить «оригинал», чтобы с текстом можно было работать как с набором оригинал+перевод.

Вот как это выглядит: во-первых, вы можете принудительно записать несколько вариантов текста для одной и той же строки (друг под другом, в кавычках). Во-вторых, если вдруг в вашем тексте оказались несколько таких строк, у которых совпали и ключи, и блоки, и имена файлов – то они схлопываются в единое вхождение, с объединёнными вашими текстами (и вообще, если у вас будут одинаковые названия блоков, файлов или ключи – то их содержимое в любом случае будут объединено, но не обязательно так схлопнуто, если что-то всё же отличалось).

Три кнопки под текстовым полем помогут вам работать с такими вот переводами. Все они считывают текущее содержимое текстового поля, и выводят результат обработки обратно в него:

Кнопка «Remove original» убирает первую строку их тех текстов, где их было больше одной. Соответственно, «Remove translation» – убирает последнюю строку.

Кнопка «Translation stats» разделяет текущий документ на несколько файлов: в первом будут только те тексты, у которых была только одна строка в переводах; во втором – все тексты с двумя строками, и так далее. При этом, все блоки корректно разделяются по этим файлам (кстати, у них будут одинаковые имена, чтобы вы могли быстро вернуть всё назад, той же «Reparse text», например), но вообще – лучше делайте эту процедуру только при единственном открытом файле, чтобы не запутаться.

Кнопка «Split translation» тоже разделяет файл на несколько, но в этот раз – первый будет содержать все тексты, в которых была в наличии первая строка (то есть вообще все) и только её, второй – только те строки, у которых была вторая строка (а тексты лишь с одной сточкой будут отсутствовать) и тоже только её, и так далее. Опять же, при общем считывании результата – вы получите то, что у вас было; эта команда лишь помогает отделить переводы друг от друга.

Если вы сохраните файл, в котором были переводы (то есть тексты с несколькими строками) – то в игру он будет вшит как конкатенация ваших переводов через символ \0 (двоичный нуль), снизу вверх, то есть ваш самый последний перевод будет начинать фразу, а оригинал – её заканчивать. Вообще говоря, это некорректный вид текста, и игра отреагирует на него неправильно.

Поэтому, сохраняйте в бинарные файлы свои переводы только для удобства, а при запаковке в игру – удаляйте все оригиналы из них (нажмите «Remove original» несколько раз, если у вас было по три строки и больше). Эта возможность добовлять переводы нужна в первую очередь для удобства переводчика! (Плюс, вы всегда сможете вернуть переводы на место, если вставите в текстовое поле файл оригинала, и файл финального перевода – когда укажите им одинаковые имена после <FILE>).

Строки записываются в кавычках, чтобы вы не беспокоились о пробелах на концах. Программа экранирует следующие символы: переносы строк: <cr>, <lf> и <cf> (<cr>+<lf>); табулятор <tab>; двойная кавычка <q>, нуль-байт <nul> (только в названиях, ведь в текстах он разделяет переводы); знаки больше и меньше <gt> и <lt> (ведь они и используются для всего остального экранирования).

Создаваемые бинарные .locres файлы имеют смешанную кодировку: UTF-8 для тех текстов, которые содержат только базовую латиницу ASCII (то есть дополнительные наборы utf8 при этом не используются), и UTF-16 для тех, в которых встречаются прочие символы юникода.