Выделение строк из tlk

Выделение строк - первый этап процесса локализации Planescape. И надо сказать, не самый сложный.

Устройство движка Infinity

Устройство Infinity Engine таково, что все текстовые ресурсы хранятся в файлах dialog.tlk и dialogF.tlk, которые находятся в корне каталогов игры. Все остальные файлы ресурсов (диалоги, описания предметов, локаций, записи дневника, характеристики, элементы игровых меню) имеют в себе только ссылку на соответсвующую строку в этих файлах. Каждый ссылка - это номер, начиная с 0, который является адресом в файле dialog.tlk или dialogF.tlk

Файл dialogF.tlk используется в том случае, если персонаж, которым играет игрок, женского пола. Так как в PS: T персонаж всего один - мужской, то разработчики из Black Isle не мудрили и просто скопировали dialog.tlk в dialogF.tlk, так что они оба идентичны, но при этом второй файл нигде не используется. Он нужен лишь для того, чтобы он был нужен. Видимо, это проверка целостности ресурсов движком, и без этого файла игра попросту не запустится.

Итак, наша цель - dialog.tlk. Его-то мы и будем препарировать.

Выделение строк

Структура файла достаточно проста, единственно минус - он удобен для чтения движком, а не человеком (и уж тем более переводчиком). Возможно, существуют некие гипотетические SDK, которые существенно упрощают работу локализаторам, но в открытом доступе их нет. Спросите у Bioware.

Но все же, все не так запущенно. Существует целое семейство редакторов ресурсов движка Infinity - от общепрофильного просмотрщика NearInifinty, навороченного редактора DLTCEP до узкоспециализированных TLKEditor, BAMEditor и так далее.

Все они обладают одним минусом - они не пригодны для переводчиков. Да, они позволяют просматривать ресурсы в удобном для восприятия виде, но не изменять их (в нужном виде). Файл диалогов никак не оптимизирован, и в нем встречаются по раз 50 такая строка, как например "I see. I had more questions…". Каждый раз переводить одно и тоже по нескольку раз - удовольствие то еще.

Однако есть консольная утилита WeiDU, которая позволяет выделить строки из TLK-файла в удобном для восприятия и последующего анализа виде. Запускать ее следует из корня каталогов игры - так она автоматичиски подхватит все необходимые переменные среды (главный файл ресурсов chittin.key, в котором находится описание остальных ресурсов).

Программа имеет богатый набор парметров командной строки. Она прежде всего создавалась для моддеров Baldur's Gate, который, собственно, сделан на Infinity Engine. Одной из побочных возможностей программы является выделение всех строк из dialog.tlk. В общем виде запуск WeiDU выглядит так (запускной файл находится в корне):

C:\games\planescape\WeiDU.exe --traify-tlk --out all.tra

В итоге мы получим файл all.tra размером около 6,5 Мб, который находится в корне игры. Структура для восприятия достаточно удобна:

@0     = ~"I shall wait for you in death's halls, my Love." She smiles, but there is only sadness in it. She closes her eyes, and with an ethereal whisper, she fades.~ [DEN008B]
@1     = ~POUCH
Weight: 0

A small bag made of some unidentifiable material.~
@2     = ~Morte's Bite (Sharpened)~
@3     = ~EMBALMING ROOM KEY
Weight: 0

This long, thin key has a spiral head and smells faintly of embalming fluid. It looks extremely old, and numerous scratches cover its surface.

NOTE: When using keys in Torment, you only need to have them in your inventory to unlock a door. In some cases, the key will vanish after it is used... this is done when the key is no longer needed and frees up your inventory slots for other, more important items. ~
@4     = ~Dak'kon Zerth Armor~

Итак рассмотрим структуру полученного файла. Каждый ресурс начинается с пронумерованного элемента @, затем идет само тело сообщения в "кавычках"-тильдах (~), после (но не везде) идет имя звукового ресурса в квадратных скобках.

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

Итак, этап экстракции завершен, переходим к следующему - экспорту в PO.

Ссылки

Пока не указано иное, содержимое этой страницы распространяется по лицензии Creative Commons Attribution-ShareAlike 3.0 License