Перейти к содержимому


Фотография

Патч и Русификатор


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 338

#261 nevere

nevere

    Undersigil Hero

  • Пользователи
  • PipPipPip
  • 317 сообщений

Отправлено 16 апреля 2011 - 01:56

QUOTE
Поправь там "символы-паразиты"
Символы, указывающие на улучшение/ухудшение характеристики. :) Если интересна история их появления, есть обсуждение на нескольких страницах где-то в этой теме. Не совсем понял, что именно нужно поправить, если просто удалить, то наспех могу предложить такое решение для версии перевода от 13.04.2011 (№22). Нужно просто поместить указанный файл в каталог русификатора и отметить на странице компонентов пункт "Поиск и установка обновлений". Эта процедура никак не влияет на прохождение игры, поэтому может выполняться в любое время без какого-либо ущерба для этого процесса.


#262 Macbeth

Macbeth

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 350 сообщений

Отправлено 16 апреля 2011 - 08:22

QUOTE
Символы, указывающие на улучшение/ухудшение характеристики. :)

От оно как. Тогда извини. :)


#263 Godsatan

Godsatan

    Planewalker

  • Пользователи
  • PipPipPip
  • 1 336 сообщений

Отправлено 16 апреля 2011 - 09:29

Тогда ещё обратите внимание на ошибку в описании кольца Дейонарры: "...колечко, сделанное из слоновой кости было частью наследства..." — поставьте запятую после "кости", это причастный оборот. Там же "Его свойстве не столь сильны. Так что ещё править и править.


#264 nevere

nevere

    Undersigil Hero

  • Пользователи
  • PipPipPip
  • 317 сообщений

Отправлено 16 апреля 2011 - 10:54

QUOTE
От оно как.
Это должна была пояснять соответствующая книга, которую никак не соберусь с силами дописать. :)

QUOTE
Так что ещё править и править.
Знаю об этом как никто другой. :) Мне известны почти все ошибки перевода и недочёты, которые там ещё остались и вопрос уже давно не стоит об их поиске и обнаружении, всё дело непосредственно за самим исправлением, которым в том числе, я занимаюсь по мере сил и возможностей. Это можно отчётливо видеть, если время от времени загружать периодически появляющиеся обновления. Описания предметов (кольцо Дейонарры в их числе) уже несколько месяцев назад исправила adrianna. Не все её правки успел пока перенести в базовый вариант перевода, но все они уже были доступны для ознакомления всем желающим на предыдущей странице.

P.S.: Любой желающий по-прежнему может подключаться к процессу перевода на любом его этапе.


#265 Maxxim

Maxxim

    Директор начальства

  • Пользователи
  • PipPipPip
  • 1 043 сообщений

Отправлено 05 июня 2011 - 18:05

Может быть, несколько упростить процесс совместной работы над переводом?

nevere, ты какими техсредствами пользуешься при переводе? Только Infinity Translator?


#266 nevere

nevere

    Undersigil Hero

  • Пользователи
  • PipPipPip
  • 317 сообщений

Отправлено 11 июня 2011 - 18:19

QUOTE
Может быть, несколько упростить процесс совместной работы над переводом?
А разве сейчас он не достаточно прост? :)

QUOTE
nevere, ты какими техсредствами пользуешься при переводе? Только Infinity Translator?
Infinity Translator использую только в тех случаях, когда нужно увидеть структуру, помимо него пользовался в разное время и для разных целей актуальными версиями следующих программ:

BG2 TLK Editor — для отделения заголовков и форматирования текста.

Multilizer — в основном для автоматизации рутинных операций. Без использования некоторых его функций, пожалуй, даже несколько человек могли бы потратить ни один месяц на то, что одному его (или любого из аналогов) пользователю под силу выполнить за несколько часов. Кроме прочего поддерживает поиск в TDA и обмен данными с учётными записями Google (к вопросу об упрощении). Если нужно, могу предоставить одну из последних TMX. Из недостатков: относительная дороговизна и требовательность к ресурсам системы, без достаточности которых может очень долго думать над некоторыми операциями.

UEStudio — для реализации нестандартных алгоритмов автоматической замены.

WinMerge и UltraCompare — по их прямому назначению.

И несколько программ с функциями проверки правописания (так и не разобрался, как настроить Hunspell под Multilizer) — для автоматического поиска ошибок на этапе черновой обработки.

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


#267 Maxxim

Maxxim

    Директор начальства

  • Пользователи
  • PipPipPip
  • 1 043 сообщений

Отправлено 12 июня 2011 - 21:07

Ага, значит, интеграция с Google Translate уже есть. Понятно.

Но использовать для перевода художественного текста программу, предназначенную для локализации ПО — своеобразное решение. Используешь Multilizer, потому что для тебя это привычный рабочий инструмент или по какой-то другой причине?

Опиши, пожалуйста, свой workflow от исходного dialog.tlk до переведенного. Какие инструменты используются на каком этапе? Может быть, смогу помочь что-то оптимизировать.

Например, мой рабочий инструмент — memoQ — на мой взгляд, может заменить несколько используемых тобой. И это только для начала. В нём нет (и, возможно, не будет) интеграции с Google Translator Toolkit, но зато работает Hunspell. :)


#268 nevere

nevere

    Undersigil Hero

  • Пользователи
  • PipPipPip
  • 317 сообщений

Отправлено 13 июня 2011 - 13:19

QUOTE
предназначенную для локализации ПО
В чём Вы видите принципиальное отличие? На мой взгляд, в этой версии есть всё необходимое для работы с любым текстом.

QUOTE
Используешь Multilizer, потому что для тебя это привычный рабочий инструмент или по какой-то другой причине?
Так сложилось исторически. :)

QUOTE
Опиши, пожалуйста, свой workflow от исходного dialog.tlk до переведенного. Какие инструменты используются на каком этапе?
1. Получаем текстовый файл с помощью BG2 TLK Editor (если нужен не весть текст, а только определённый диалог, используем команду "Export..." в Infinity Translator).

2. Загружаем полученный текст в нужный редактор.
Multilizer.
В зависимости от цели настраиваем парсер, чтобы задать необходимое представление (поблочно, построчно и т.д.). Открываем английский вариант. Импортируем перевод.
WinMerge и UltraCompare.
Используем, когда необходима быстрая оценка проделанных изменений.


3. Вносим изменения.
UEStudio.
Используем в основном для конструкций типа ^[^$^]*^[^$^] [A-Z][~А-я] ^{ A^}^{B^} или чего-то подобного.


4. Сохраняем результат.

5. Получаем диалоговый файл с помощью BG2 TLK Editor (если нужен не весть текст, а только определённый диалог, используем команду "Load patch..." в Infinity Translator).

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

Сейчас в основном использую Multilizer для устранения недочётов выявленных автоматическим (propagation, validation и т.п.) путём (осталось примерно 2000 позиций).

QUOTE
Например, мой рабочий инструмент — memoQ — на мой взгляд, может заменить несколько используемых тобой.
Кроме собственного сервера не нашёл в memoQ 4.5.74 значимых отличий от Multilizer. Вообще, думаю, с унификацией, в процессе совместного перевода Planescape: Torment, могут возникнуть некоторые сложности. Поясню. Перевод этой игры — некоммерческий проект. Число желающих в нём участвовать, в лучшем случае невелико. Участвовать регулярно, думаю, ещё меньше. Необходимость приобретать и осваивать определённый продукт, требуемый для участия, может окончательно отбить желание у потенциальных добровольцев.


#269 Maxxim

Maxxim

    Директор начальства

  • Пользователи
  • PipPipPip
  • 1 043 сообщений

Отправлено 14 июня 2011 - 12:08

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

Не написали ли еще программы, с помощью которой можно было бы автоматически конвертировать весь dialog.tlk в файл текстового формата, в котором строки диалогов располагались бы не в исходном «хаотичном» виде, а в сколь-нибудь приближенном к диалоговым деревьям? Может быть, WeiDU это уже умеет?

Я за этим делом не следил 5 лет, и, чем тратить массу времени на поиск ответа типа «да-нет», лучше сразу задам вопрос знающему человеку.


#270 Lostman

Lostman

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 171 сообщений

Отправлено 15 июня 2011 - 06:54

WeiDU не умеет выделять строки, относящиеся к определенному файлу, точнее умеет, но порядок строк при этом нарушается — вместо того, чтобы заменить переведенные строки, он добавляет их в конец Dialog.tlk.

Я для своего проекта сделал самопальные скрипты, которые вычленяют нужные строки из декомпилированного Dialog.tlk согласно расположению по файлам.


#271 Maxxim

Maxxim

    Директор начальства

  • Пользователи
  • PipPipPip
  • 1 043 сообщений

Отправлено 15 июня 2011 - 09:01

Lostman, кажется, один из нас другого не понял. Не уверен, кто кого, поэтому на всякий случай поясню, зачем задавал такой вопрос. :)

Сконвертировать — автоматически и целиком — dialog.tlk в файл текстового формата, в котором строки диалогов располагались бы в виде диалоговых деревьев, на мой взгляд, очень полезно как для перевода, так и для последующей вычитки и правки.

Диалоговые деревья позволяют оценить ближайший контекст и структуру диалога. Четкое представление о контексте — одно из непременных условий адекватного перевода. Контекст игры в широком смысле (фабулу/сюжет, персонажей, локации) наверняка помнит каждый, кто играл в неё. Однако, даже те, кто прошел игру не раз и не два, вряд ли смогут легко восстановить в памяти каждый из сотен диалогов.

Смогут ли твои скрипты выполнить эту задачу?


#272 nevere

nevere

    Undersigil Hero

  • Пользователи
  • PipPipPip
  • 317 сообщений

Отправлено 15 июня 2011 - 18:58

QUOTE
Не написали ли еще программы, с помощью которой можно было бы автоматически конвертировать весь dialog.tlk в файл текстового формата, в котором строки диалогов располагались бы не в исходном «хаотичном» виде, а в сколь-нибудь приближенном к диалоговым деревьям? Может быть, WeiDU это уже умеет?
Теоретически такая программа может существовать, но мне она не попадалась. :) С другой стороны, если я правильно понял задачу, все необходимые для создания такого файла функции давно реализованы во многих программах. Если вдуматься, генерация общего текста на основе структуры диалогов это то же самое, что генерация текста для каждого диалога в отдельности с последующим объединением в один файл + строки не входящие в диалоги. Т.е. строите текстовые файлы со структурой сколько-нибудь приближенной к диалоговым деревьям для всех диалогов игры, объединяете всё это в один файл и добавляете выпадающую разницу. Переводите. Производите обратное преобразование. Построение можно производить, например, с помощью команды --trans той же WeiDU; либо с помощью того же Infinity Translator, попутно компенсировав его неумение экспортировать оптом, какой-нибудь AutoIt; либо с помощью любой другой программы с соответствующими функциями. Получившиеся файлы можно даже не объединять, что, на мой взгляд, только упростит процесс. Разве не решаются такие задачи за счёт масштабирования проекта? Загружаете все получившиеся файлы в программу перевода, добавляете неструктурированный Dialog.txt и сообщаете программе, что это единое целое. После чего редактируя структурированные части у вас будет обновляться и общий текст — по-моему, очень удобно.

QUOTE
WeiDU не умеет выделять строки, относящиеся к определенному файлу, точнее умеет, но порядок строк при этом нарушается — вместо того, чтобы заменить переведенные строки, он добавляет их в конец Dialog.tlk.
Если мне не изменяет память, это не совсем так. :) В конец они добавляются, если делать через --transin, а если через STRING_SET, то вроде и по нужным позициям можно. Не помню точно на счёт WeiDU, но "BiggDU" должен, по идее, с этим справляться.


#273 Maxxim

Maxxim

    Директор начальства

  • Пользователи
  • PipPipPip
  • 1 043 сообщений

Отправлено 16 июня 2011 - 22:59

Поскольку Lostman заговорил о самодельных скриптах, позволю себе немного развить свою идею.

Дерево диалогов в текстовом виде — это строки, отбитые табуляцией на нужный уровень вложенности. Одно дерево диалога от другого отделяется двумя переводами строки. В один текстовый файл входят все деревья диалогов, относящиеся к той или иной локации. Это же технически возможно сделать своими силами, да? Отдельно — файлы с содержанием справки, описаниями вещей и т.п. Возможно ли соответствующие строки из dialog.tlk распределить по файлам автоматически?

Обратно преобразовывать это дерево не придется. Экспортировать перевод обратно в неструктурированный Dialog.txt нам помогут наши кошки.

У моей кошки есть одна функция, которая, как мне кажется, будет полезна и для перевода и для редактуры. Это поле комментариев, которое имеется у каждой пары сегментов «оригинал — перевод». В это поле можно записывать всяческую полезную техническую информацию о каждой строке диалога (например, кто и на какой локации её произносит). Потом при помощи моей кошки по содержимому комментариев можно очень легко отфильтровывать из всего массива текста, скажем, только реплики нужного персонажа / на нужной локации. Это полезно, например, для оценки стилистического единства перевода реплик одного и того же персонажа — особенно если над ними трудятся несколько людей. Можно придумать и другие полезные применения.

Для того, чтобы этой функцией воспользоваться, нужно лишь чтобы наша (гипотетическая) программа-преобразователь параллельно с деревом диалогов создавала один простой текстовый файл в формате «строка диалога — tab — комментарий».

Единственный вопрос в том, возьмется ли кто-либо из вас такую программу создать.


#274 nevere

nevere

    Undersigil Hero

  • Пользователи
  • PipPipPip
  • 317 сообщений

Отправлено 22 июня 2011 - 21:24

QUOTE
Дерево диалогов в текстовом виде — это строки, отбитые табуляцией на нужный уровень вложенности. Одно дерево диалога от другого отделяется двумя переводами строки.
В текстовом виде невозможно отобразить циклические переходы. В лучшем случае получится воспроизвести структуру .d-файла, а это уже есть. Замена схемы "THEN REPLY — GOTO — THEN BEGIN" табуляторами приведёт, на мой взгляд, только к переполнению текста многократными повторами и никак не улучшит его восприятие.

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

QUOTE
Отдельно — файлы с содержанием справки, описаниями вещей и т.п. Возможно ли соответствующие строки из dialog.tlk распределить по файлам автоматически?

Обратно преобразовывать это дерево не придется. Экспортировать перевод обратно в неструктурированный Dialog.txt нам помогут наши кошки.

У моей кошки есть одна функция, которая, как мне кажется, будет полезна и для перевода и для редактуры. Это поле комментариев, которое имеется у каждой пары сегментов «оригинал — перевод». В это поле можно записывать всяческую полезную техническую информацию о каждой строке диалога (например, кто и на какой локации её произносит). Потом при помощи моей кошки по содержимому комментариев можно очень легко отфильтровывать из всего массива текста, скажем, только реплики нужного персонажа / на нужной локации. Это полезно, например, для оценки стилистического единства перевода реплик одного и того же персонажа — особенно если над ними трудятся несколько людей. Можно придумать и другие полезные применения.
По-моему все эти задачи превосходно решаются программой перевода и без помощи каких-либо кошек.

QUOTE
Для того, чтобы этой функцией воспользоваться, нужно лишь чтобы наша (гипотетическая) программа-преобразователь параллельно с деревом диалогов создавала один простой текстовый файл в формате «строка диалога — tab — комментарий».

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


#275 Maxxim

Maxxim

    Директор начальства

  • Пользователи
  • PipPipPip
  • 1 043 сообщений

Отправлено 23 июня 2011 - 12:52

Сначала о терминах. То, что я называю «кошки» — это то же самое, что ты называешь «программы перевода». Multilizer — тоже «кошка». Терминов типа «программы перевода» я не употребляю, потому что у большинства они ассоциируются исключительно с машинными переводчиками типа ПРОМТа. Правильный термин — что-нибудь типа «программные средства автоматизации труда переводчика» — выходит слишком длинным, поэтому я называю их просто «кошки».

Что касается привязки диалогов к локациям — я и не ожидал, что всё решится простой одноходовкой. Нет локационных маркеров в файлах логики диалогов — ну и ладно. Но ведь можно извлечь информацию о привязке диалогов к локациям, проанализировав цепочку других ресурсов? Или нет?

Циклы в диалогах нужно разрывать. Пусть в результате получатся отдельные ветки диалоговых деревьев — свою задачу они выполнят.

Еще раз об этой задаче. О том, зачем я вношу эти свои предложения.
Диалоговые деревья позволяют оценить ближайший контекст и структуру диалога. Четкое представление о контексте — одно из непременных условий адекватного перевода. Контекст игры в широком смысле (фабулу/сюжет, персонажей, локации) наверняка помнит каждый, кто играл в неё. Однако, даже те, кто прошел игру не раз и не два, вряд ли смогут легко восстановить в памяти каждый из сотен диалогов.


#276 nevere

nevere

    Undersigil Hero

  • Пользователи
  • PipPipPip
  • 317 сообщений

Отправлено 23 июня 2011 - 18:56

QUOTE
Сначала о терминах. То, что я называю «кошки» — это то же самое, что ты называешь «программы перевода».
Будем считать, с CAT разобрались. :) На мгновение показалось, что в дополнение к Вашему "рабочему инструменту" Вы используете что-то ещё.

QUOTE
Но ведь можно извлечь информацию о привязке диалогов к локациям, проанализировав цепочку других ресурсов? Или нет?
Скорее нет, чем да. Даже если Вы выясните координаты через скрипт или напрямую через локацию, Вам это мало что даст, если мне не изменяет память, активация той или иной ветки диалога не всегда зависит от положения её обладателя.

QUOTE
Диалоговые деревья позволяют оценить ближайший контекст и структуру диалога. Четкое представление о контексте — одно из непременных условий адекватного перевода. Контекст игры в широком смысле (фабулу/сюжет, персонажей, локации) наверняка помнит каждый, кто играл в неё. Однако, даже те, кто прошел игру не раз и не два, вряд ли смогут легко восстановить в памяти каждый из сотен диалогов.
Внимательно читаю сообщения, относящиеся к теме, и понял это ещё с первого раза и даже задолго до этого. Пытался лишь сказать, что, на мой взгляд, оптимальные варианты уже реализованы. Ввод табуляторов приведёт схему вида
1,2,3->4
к виду
1->4
2->4
3->4
да ещё и со смещением на несколько сотен символов в некоторых случаях. Вероятно, не всем это может показаться удобным. :)


#277 Maxxim

Maxxim

    Директор начальства

  • Пользователи
  • PipPipPip
  • 1 043 сообщений

Отправлено 24 июня 2011 - 11:27

Что имеется в виду под «оптимальными вариантами»? Держать открытым Infinity Translator и сверять ближайший контекст/структуру диалога по нему?

А что с тэгами типа <ЧИСЛО>Текст<END> в dialog.txt?

И не возникало ли желания избавиться от пустых, отладочных и неиспользуемых строк в dialog.tlk? Или это технически затруднительно? Насколько я понимаю, неиспользуемые ресурсы можно вычислить. Или легче их игнорировать?


#278 nevere

nevere

    Undersigil Hero

  • Пользователи
  • PipPipPip
  • 317 сообщений

Отправлено 25 июня 2011 - 18:47

QUOTE
Что имеется в виду под «оптимальными вариантами»?
Имел в виду текстовое представление структуры диалога. Вряд ли получится сделать лучше того, что уже реализовано в WeiDU, Infinity Translator и т.п.

QUOTE
Держать открытым Infinity Translator и сверять ближайший контекст/структуру диалога по нему?
С учётом наличия у блоков цифровых идентификаторов это не намного сложнее, чем пролистывание затабулированного текста с многократными повторениями. :) К тому же если используются структурированные части, такой сверкой придётся пользоваться не так уж и часто.

QUOTE
А что с тэгами типа <ЧИСЛО>Текст<END> в dialog.txt?
Что с ними не так? :) Тэги используются для наведения программы перевода на блоки (игровые строки) и для построения tlk-файла. При добавлении текста из dialog.txt используем, например такие настройки парсера, после чего получаем в программе примерно следующее. Если для обработки нужны меньшие части, режем блоки правилами сегментации. Можно нарезать на строки или на слова. При добавлении структурированного текста, например из d-файлов, используем, такие настройки или что-то похожее. Масштабирование удобно тем, что при редактировании диалогового текста проделанные изменения автоматически учитываются во всех связанных частях.

QUOTE
И не возникало ли желания избавиться от пустых, отладочных и неиспользуемых строк в dialog.tlk? Или это технически затруднительно? Насколько я понимаю, неиспользуемые ресурсы можно вычислить. Или легче их игнорировать?
Разве не для этого в программе перевода существуют исключения? :)


#279 Ardanis

Ardanis

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 49 сообщений

Отправлено 25 июня 2011 - 20:15

QUOTE
И не возникало ли желания избавиться от пустых, отладочных и неиспользуемых строк в dialog.tlk? Или это технически затруднительно? Насколько я понимаю, неиспользуемые ресурсы можно вычислить. Или легче их игнорировать?
Очень плохая мысль — удалять оригинальный контент. От этого могут запросто полететь моды, предполагающие наличие оригинала, а не самопальной версии. Особенно если они используют STRING_SET.

Это сообщение отредактировано Ardanis - 25 июня 2011 | 21:16


#280 Maxxim

Maxxim

    Директор начальства

  • Пользователи
  • PipPipPip
  • 1 043 сообщений

Отправлено 27 июня 2011 - 23:27

Ardanis, объясните, пожалуйста, чем грозит «самопальной версии» отсутствие перевода такого ценного контента, как, например,
QUOTE
I'm Dak'kon. A githzerai. One of the party members. I don't have anything to say right now. You should check out my cool combat animations, though. Too bad there aren't any Chambara movie death animations for monsters I kill...
Dak'kon: "Watch my sword: koroshicharu!"
Hive Thug: "Gaaahh... munen nariiii..." *Sssssssss* <--- arterial blood spray *thud*
Dak'kon: "Fmm." *sching* <-- *karach* blade being sheathed
(Cherry blossoms fall from top of screen.)


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

Не понял твоей фразы про исключения. Говоря об отладочных и неиспользуемых строках, я имел в виду то, что процитировано выше (плюс еще энное количество текста, не столь явно проявляющего себя как неиспользуемый). Хотя, может быть, неиспользуемого не так много и его проще будет взять и перевести, чем ждать, что кто-то напишет программку для чистки?

Ещё что не понял — с какой хитрой целью у тебя в мультилайзеровском проекте используется как целый dialog.txt, так и отдельные (экспортированные) диалоги? чтобы легче было ориентироваться в диалогах? Чтобы можно было отдельным исполнителям поручать переводить отдельных персонажей? Чтобы проект умещался в гугловский лимит на размер исходного документа в 1 МБ? Всё вышеперечисленное? :)

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

Возьму твои TMX поглядеть. Если готов открыть их всем, залей, пожалуйста, на файлообменник. Если только мне, отправь по э-почте.




Похожие темы Свернуть

  Название темы Форум Автор Статистика Последнее сообщение


Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 анонимных

Рейтинг@Mail.ru