Перевод Planescape: Torment. Попытка вторая

На этой страничке я (azamat aka Lostman) попробую обобщить некий опыт, полученный мной в попытках сделать перевод PS:T на русский язык. Предыдущая попытка (Ссылка на пост), иницализированная уважаемым участником Kedzzz в далеком 2002 году заморозилась после обширных обсуждений в 2006 году.

Не скрою, что я, как хардкорный фанат Interplay и Bioware, весьма и весьма ожидал удовольствия от игры PS:T. Найдя с оказией наконец-таки 2 ISO игры, я быстро обнаружил, что нормального перевода к игре нет. Локализаций не было, пираты не в счет. Попытка сыграть в Фаргусовый перевод завершилась вторым этажом Мортуария. Это финал. И тут меня, как Остапа, понесло.

Первые шишки

Первым делом, надо было узнать где лежат строки, и как их можно выдирать. Рысканье по тематическим форумам и проектам дали мне кучу аналитической информации и руководств к действию. Для начала я узнал, что все строки хранятся в dialog.tlk, к которому есть куча программ - начиная от простого TLKEdit и заканчивая ультрафункциональным NearInfinity. Но все они, несмотря на некотрые отличия, не подходили такому дотошному человеку как я :). Оказалось, что файл диалогов никак не оптимизирован, и в нем встречаются по раз 50 такая строка, как например "I see. I had more questions…". Каждый раз переводить одно и тоже меня достало при десятой попытке. Пришлось углубить исследования.

CAT

На свет появилась консольная (!) утилита WeiDU, которая позволяла просто выдирать строки из dialog.tlk целые массивы строк. Запустив команду в корне игры, с такими параметрами:

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

Мы получим файл all.tra примерно такого вида:

@1   = ~"Hey, chief. You okay? You playing corpse or you putting the blinds on the Dusties?
I thought you were a deader for sure."~ [MRT001]
@2   = ~"Wh...? Who are you?"~
@3   = ~"Uh... who am *I?* How about *you* start? Who're you?"~
@4   = ~"I... don't know. I can't remember."~
@5   = ~"I asked *you* first, skull."~

Что мы тут видим? Мы видим удобные для захвата каким-нибудь парсером строки с кавычками вида "~". Возникла идея - пора на них натравливать какую-нибудь кошку (CAT - Computer Aided Traslation). Для захвата у меня уже был на готове хороший парсер okapi framework. Все, что нужно - сделать регулярные выражения для завхата строк по этим пресловутым кавычкам.

Не буду занудствовать, объясняя, что такое регэксп, ибо это убивает всю поэзию :). Приведу лишь пример того, как он работает на практике. Итак, нам нужно выдрать все, что находится между ~ и ~. Делаем это так:

# Открывающая сентенция
@\d+\s+=\s
# Содержимое
~.*?~
# Конец (пустая строка :))

Эти строки должны присутствовать в Input-фильтре PlainText в okapi. Помимо этого, мы должны удалить все Rules, которые были до этого в этом фильтре. Для оставшегося правила нужно указать параметры "Extract Lines" (на следующей вкладке надо также указать ~ в качестве кавычек), "Multiline", "Dot also matches line-feed".

Таким образом, все то, что будет между началом и концом, будет ловиться okapi и кидаться в какой-нибудь удобный файл.
Выдрав таким образом все 65000 строк и загнав их в стандартный XLIFF-файл (формат, который должен уважать любой мало-мальски нормальный CAT), я получил неплохую базу для анализа и перевода. Выяснилось, что уникальных строк всего 38000 с копейками. Многие из них так или иначе повторяют друг друга, Таким образом, нужно всего-то перевести 25000-30000 сообщений :). Обратное преобразование в dialog.tlk не вызывает никаких затруднений (кроме разве что затрат по времени).

What next?

Итак, остается только одно - теперь нужны рядовые переводчики, имеющие

  1. хорошие знания английского
  2. опыт путешествия по Планам
  3. усидчивость в вылавнивании багов и терпимость к другим
  4. кучу времени

Итак, готов ли ты, славный рубака, сделать этот мир лучше?

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License