Руководство по переводу модификаций Dragon Age: Начало.
Руководство написано на основе трудов Gray Warden и дополнено мною. Сразу начнём с главного. Для работы нам потребуются:
1). GffEditor - c её помощью производиться работа с TLK, DLG, PLO и MAP-файлами.
2). ErfEditor - программа для открытия ERF-файлов и вытаскивания всех нужных файлов из него.
3). WinHex - программа для работы с шестнадцатеричным кодом.
4). GffEditor Newerwinter Nights - программа для просмотра нужных ID реплик, названий, фраз и т.д.
5). Notepad++ - программа для безопасного редактирования XML-файлов.
6). WinRAR - нужен для открытия DAZIP-файлов (или какая-либо другая программа подобного рода).
Первое и второе идёт в установке вместе с Toolset'ом. Третье, четвёртое и пятое придётся качать с интернета. А шестое вообще у всех есть. Как только всё будет у вас, можно будет преступать к переводу. Для начала определимся с какими файлами мы будем работать в процессе перевода. Итак:
1). Файлы UTC - Отвечают за персонажей, монстров, живых существ и т.д.
2). Файлы UTI - Отвечают за предметы, оружия, доспехи и т.д.
3). Файлы UTP - Отвечают за название дверей, переходных мест, сундуков и т.д.
4). Файлы UTM - Отвечают за названия магазинов (надпись над каталогом товаров у торговцев).
5). Файлы TLK - Во общем это файлы откуда берутся названия для предметов, существ, диалогов и всего остального (только с помощью этих файлов можно заставить игру понимать русский язык).
6). Файлы PLO - Отвечают за описание квестов в дневнике, названия локаций на карте и всплывающих сообщений (имеются и другие функции).
7). Файлы DLG - Отвечают за диалоги. Могут быть как для всего мода, так и для отдельного НПС.
8). Файлы MAP - Отвечают только за названия и описание значков на карте мира.
9). Файлы ARE - Отвечают за название локаций, которые отображаются под мини-картой и в строке сохранения игры.
Теперь, как только с теорией покончено, начинаем переводить. Рассказывать буду на примере мода Замок Кусланд.
Шаг 1. Подготовка файлов.
Для этого шага нам понадобится программа ErfEditor, WinRAR и собственно сам английский мод. Первым делом открываем DAZIP-файл мода WinRAR'ом, извлекаем папку "Content", полностью просматриваем её на наличие нужных нам файлов и копируем все файлы (те которые я перечислил выше) в отдельную папку. Далее находим все ERF архивы в моде, открываем каждый ErfEditor'ом, выбираем все файлы вышеперечисленных форматов (CTRL + Левый Клик), нажимаем правую кнопку мыши, выбираем "Extract Resource..." и скидываем всё в папку где мы будем редактировать файлы.
На этом шаг заканчивается. Берёмся за следующий.
Шаг 2. Создание TLK-файла.
Так как игра по умолчанию не принимает русский язык, нам потребуется TLK-файл, чтобы запихивать туда значения взятые из UTC, UTI, UTP, UTM и ARE-файлов. Создавать самим такой файл проблематично, поэтому лучше всего взять из какого-нибудь мода уже готовый. Каждый такой файл следует называть следующим образом (чтобы проблем с чтение игры файла не было): название_мода_на_английском_языке_ru-ru.tlk (название мода можно взять из названия папки в подпапке "AddIns", папки "Content"). Далее откройте его. Вы увидите примерно следующее:
Первым делом нужно сделать строки со значениями по 2 штуки на каждый файл UTC, UTI, UTP, UTM и ARE в моде. Если в выбранном вами TLK-файле строк больше чем нужно, выбираете любую строчку, нажимаете правую кнопку мыши и выбираете пункт "Delete". Если строк меньше чем вам нужно, то наводите мышью на строчку "TALK_STRING_LIST", нажимаете правую кнопку мыши - далее "Insert" и потом "Structure".
Появится такая вот строчка:
Следующими действиями нужно копировать строчки "TALK_STRING_ID" и "TALK_STRING" в именно такой последовательности в новую строчку. Далее сделать пустыми значения строчки "TALK_STRING", поставить 1 в "TALK_STRING_ID" (полностью удалить не получиться, по любому хоть одна цифра должна быть) и добавить в строчку с номером значение "STRN".
Далее делаете столько строчек, сколько вам надо. На этом заканчивается создание TLK-файла. Можно приступать к следующему шагу.
Шаг 3. Заполнение TLK-файла.
Для этого шага нам понадобится GffEditor Newerwinter Night. Для того, чтобы начать заполнение отсортируем ранее скопированные UTC, UTI, UTP, UTM, ARE файлы по имени (так будет намного проще координировать свои действия) и начинаем открывать первый из этих файлов GffEditor'ом Newerwinter Nights. Как только откроете файл перед вами будет небольшой (или большой) древовидный список. Из всего этого нас интересуют только две строчки: "LocalizedName" и "Description".
Теперь начнём переносить данные из файлов в TLK-файл. Выбираем строчку "LocalizedName" и копируем ID в первую строчку в TLK-файле. После копируем значение этого ID во вторую строчку в TLK-файле.
Значение в строчке "TALK_STRING" - это и есть, то что будет отображаться в самой игре. Так что берём англо-русский словарь (или что-либо другое, например, мозги) и переводим на русский язык. Далее следует сделать тоже самое с полем "Description". Оно как правило отвечает уже не за названия, а за описание. Делаем с ним то же самое, что делали и с полем "LocalizedName" (как это делать описывать не буду, так как 100% идентично тому, что уже делали). Даже если данное поле пустое у предмета или у существа, всё равно делаем так как положено, во избежание косяков в переводе. Теперь когда вам уже ясно, как переносить значения, сделайте тоже самое для КАЖДОГО файла UTC, UTI, UTP, UTM, ARE (на мой взгляд самое нудное занятие переводчика).
Шаг 4. Редактирование файлов WinHex'ом.
Такс... следуем дальше. Если у вас хватило терпения сделать предыдущий шаг, то с этим будет чуть по проще. Для начала нам нужен WinHex. Он служит для того, чтобы открывать и редактировать файлы непосредственно в шестнадцатеричном виде. Начнём с первого файла. Откройте его... понравилось зрелище? Но не стоит относиться к этому как к чему-то сверхъестественному. Прокрутите скроллинг примерно на 4/5 часть пока не доберётесь до более менее понятных английских слов.
Здесь нам нужно сделать следующее: нажать на первую букву английского названия, отсчитать 12 пар чисел от появившегося маркера назад и поменять число 01 на 00. Так мы заставим игру брать значение "LocalizedName" не из файла предмета или существа, а из TLK-файла созданного нами. Теперь займёмся значением поля "Description".
Я не случайно взял именно это файл. В нём отсутствует это значение хотя само поле есть. Если бы оно было, то делать пришлось бы тоже самое, что и с "LocalizedName". А раз его нет, то нам придётся на глаз находить пару чисел 01 (со временем эти числа будут находится со 100% вероятностью без всякого высчитывания пар чисел). Здесь же пара чисел расположена так:
Поменяйте 1 на 0, сохраняйте файл и выходите. Теперь проделайте такое с каждым файлом UTC, UTI, UTP, UTM, ARE (ещё одна нудная часть перевода). Как только вы со всем этим закончите, приступайте к следующему шагу.
Шаг 5. Перевод DLG, MAP и PLO-файлов.
Теперь, когда с нудной частью перевода покончено можно заняться переводом оставшихся файлов. Здесь нам понадобится только GffEditor. Начнём пожалуй с DLG-файлов (хотя в принципе всё равно, все одинаково переводятся). Открыв любой такой файл, вы увидите структуру очень похожую на строение TLK-файла. Для начала наведите мышкой на любую строчку, нажмите правую кнопку мыши и выберите пункт "Collapse All" (это полностью по раскрывает всю иерархию файла). И далее нам просто нужно проматывать файл вниз в поисках строчек с английскими предложениями (на скриншоте, они уже переведены) и, соответственно, переводить их (главное не трогать какие-либо ID номера и теги заключённые в скобки).
Как только всё закончите сохраняйте свой труд. Теперь приступайте к MAP и PLO-файлам. Делать нужно тоже самое, что и с DLG-файлами, единственное отличие, что структура немного более "крутая". Как только всё будет переведено можно приступать к завершительной стадии перевода.
Шаг 6. Всё по своим местам и манифест-файл.
Теперь когда вы завершили перевод самого мода, нужно вернуть всё по своим местам. Сделать это с файлами, которые не были запакованы в ERF-архивы можно очень легко, так что здесь без объяснений (просто копируете новые файлы на место старых). А для того чтобы вернуть файлы обратно в ERF-архивы, нужно сделать следующее: запускаете нужный архив, нажимаете на любой строчке правой кнопкой мыши, щёлкаете "Insert Resource..." и выбираете нужные вам файлы (если начнут появляться сообщения, просто проигнорируйте их и делайте своё дело дальше). После сохраняете архив и выходите.
Теперь нужно засунуть всё это обратно в DAZIP-файл мода. Для этого откройте DAZIP-файл и просто перенесите в него папку "Content" с уже переведённым модом. Вуаля! Теперь если установить этот мод, он будет русский... но! В меню загружаемого контента, всё как было на английском, так и осталось. Непорядок, надо исправлять. В DAZIP-файле мода по мимо папки "Content" есть ещё файл "manifest.xml". Извлеките его куда-нибудь и откройте Notepad'ом. Вашему взору примкнёт примерно такая картина:
Нам здесь интересны только два поля, первое - "Title DefaultText" отвечающее за название, и второе - "Description" отвечающее за описание мода. Можете переводить, а можете и своё описание написать, не суть важно. Как только закончите сохраняйте и выходите (а можете и другие поля посмотреть, если надо). Дальше копируете манифест-файл обратно в DAZIP-файл и со спокойной душой устанавливаете русифицированный мод.