Автор Тема: Русификация Dwarf Fortress  (Прочитано 627817 раз)

0 Пользователей и 2 Гостей просматривают эту тему.

Оффлайн insolor

  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1064
  • Adequate Reverse Engineer
    • Просмотр профиля
Re: Русификация Dwarf Fortress
« Ответ #105 : 16 Марта 2012, 23:44:54 »
В смысле, дофига? На us всего одна подходящая ссылка - 6887A0. Причём там слово переведено как "нас". Подозреваю, теперь множественное число будет "саркофагнас".  :D
Да, это именно тот us, а ссылок НА него 6 штук из разных мест.

Оффлайн Arex

  • Старожил
  • ****
  • Сообщений: 407
  • Ленивый дварфовод
    • Просмотр профиля
    • На викидварфии
Re: Русификация Dwarf Fortress
« Ответ #106 : 16 Марта 2012, 23:49:21 »
а ссылок НА него 6 штук из разных мест.
Как это узнать?

Оффлайн Arex

  • Старожил
  • ****
  • Сообщений: 407
  • Ленивый дварфовод
    • Просмотр профиля
    • На викидварфии
Re: Русификация Dwarf Fortress
« Ответ #107 : 16 Марта 2012, 23:58:01 »
Кстати, как узнать номер строки для вот этого символа, чтобы добавить его в транс?
Скорее всего, она просто не попала в транс. На данный момент в пропатченном экзешнике 17 раз встречается отдельно стоящая s, но почти везде не среди осмысленного текста.
Единственное среди осмысленного текста - после SDL_GetVideoInfo.
Если я правильно понимаю, номер строки в трансе ставится по адресу первого байта строки от начала файла. Так? Или там какая-то своя система нумерации?

Оффлайн DarkSmail

  • Новичок
  • *
  • Сообщений: 15
    • Просмотр профиля
Re: Русификация Dwarf Fortress
« Ответ #108 : 16 Марта 2012, 23:58:59 »
мне вот интересно, будет ли перевод на более новые версии.

Оффлайн LegendaryClother

  • Ветеран
  • *****
  • Сообщений: 1313
  • JS
    • Просмотр профиля
Re: Русификация Dwarf Fortress
« Ответ #109 : 16 Марта 2012, 23:59:50 »
Стабильный крешь когда пытаюсь заглянуть в бочку, или мешок...
error log
Цитировать
NIGHT_CREATURE_9:Unrecognized Creature Token: Стон
NIGHT_CREATURE_9:Unrecognized Creature Token: Стон
NIGHT_CREATURE_9:Unrecognized Creature Token: Стон
NIGHT_CREATURE_9:Unrecognized Creature Token: Стон
NIGHT_CREATURE_9:Unrecognized Creature Token: Стон
NIGHT_CREATURE_9:Unrecognized Creature Token: Стон
Что-то пока не нахожу откуда этот Стон взялся :-\
Да, кстати, креш в режиме крепости или приключенца?
крепость,

Оффлайн iKlim

  • Старожил
  • ****
  • Сообщений: 391
    • Просмотр профиля
Re: Русификация Dwarf Fortress
« Ответ #110 : 17 Марта 2012, 00:06:03 »
мне вот интересно, будет ли перевод на более новые версии.
Сначала нужно довести до ума вариант с 0.31.25, а потом уже используя наработки и опыт, прикручивать к новым версиям.

Оффлайн insolor

  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1064
  • Adequate Reverse Engineer
    • Просмотр профиля
Re: Русификация Dwarf Fortress
« Ответ #111 : 17 Марта 2012, 00:26:42 »
Кстати, как узнать номер строки для вот этого символа, чтобы добавить его в транс?
Скорее всего, она просто не попала в транс. На данный момент в пропатченном экзешнике 17 раз встречается отдельно стоящая s, но почти везде не среди осмысленного текста.
Единственное среди осмысленного текста - после SDL_GetVideoInfo.
Если я правильно понимаю, номер строки в трансе ставится по адресу первого байта строки от начала файла. Так? Или там какая-то своя система нумерации?
Номер - это смещение (расстояние в байтах) от начала файла.

а ссылок НА него 6 штук из разных мест.
Как это узнать?
Например загоняешь экзешник в дизассемблер IDA и смотришь :)

Оффлайн Arex

  • Старожил
  • ****
  • Сообщений: 407
  • Ленивый дварфовод
    • Просмотр профиля
    • На викидварфии
Re: Русификация Dwarf Fortress
« Ответ #112 : 17 Марта 2012, 00:33:00 »
Я тут сравнивал два exe-файла: оригинал и русский. В общем, изменено не так уж много: там удалено, там вставлено. Правда, по большей части абракадабра, так что никакого алгоритма усмотреть так и не удалось. Раньше в экзешниках особо не ковырялся. Так, постольку-поскольку. В общем какого-то алгоритма работы углядеть так и не довелось.
Зато заметил, что размер русифицированного экзешника с точностью до байта совпадает с размером оригинала. Следует ли из этого, что чем больше фраз будет переведено по возможности кратко, тем больше влезет длинных фраз, где кратко перевести не получается?

Оффлайн insolor

  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1064
  • Adequate Reverse Engineer
    • Просмотр профиля
Re: Русификация Dwarf Fortress
« Ответ #113 : 17 Марта 2012, 00:41:47 »
Да, кстати, креш в режиме крепости или приключенца?
крепость,

Это из-за "6AAB88|: View selected|: Просмотр выбранного|", его нужно урезать до 15 символов. Я перевел как ": См. выбранное", теперь все работает.

Оффлайн insolor

  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1064
  • Adequate Reverse Engineer
    • Просмотр профиля
Re: Русификация Dwarf Fortress
« Ответ #114 : 17 Марта 2012, 00:53:38 »
Я тут сравнивал два exe-файла: оригинал и русский. В общем, изменено не так уж много: там удалено, там вставлено. Правда, по большей части абракадабра, так что никакого алгоритма усмотреть так и не удалось. Раньше в экзешниках особо не ковырялся. Так, постольку-поскольку. В общем какого-то алгоритма работы углядеть так и не довелось.
Зато заметил, что размер русифицированного экзешника с точностью до байта совпадает с размером оригинала. Следует ли из этого, что чем больше фраз будет переведено по возможности кратко, тем больше влезет длинных фраз, где кратко перевести не получается?
Алгоритм замен достаточно сложный. Если кого-то интересуют конкретные детали реализации, я могу скинуть исходники патча. Правки "абракадабры" - это обычно замена размера строки, если она прописана в коде.

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

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

Оффлайн Ohar

  • Пользователь
  • **
  • Сообщений: 68
    • Просмотр профиля
Re: Русификация Dwarf Fortress
« Ответ #115 : 17 Марта 2012, 01:50:37 »
Скачал, поставил.

«Бродячий Dog (Ручной)», «элитный борецы», «каменщикы», «raw рыба», «питьёs», «конечность/тело гипсs», «Мясо бочка (pine)», «порошок для бросает», «потребности строительный материал неэкономический предмет», описания предметов превратились в наборы иероглифов.

Вообще, довольно прилично. Не переведены названия предметов и животных (ну и пофиг). Не отображаются описания — вот это реально плохо, у дварфа даже пол теперь не посмотреть, про выявление вампиров молчу.

Я ожидал много худшего. В это даже можно играть. Разработчикам респект и уважуха. Для новичков (и тех, у кого хреново с аглицким) будет очень полезно.

Когда будете распространять, давайте лучше прямо уже пропатченную игру, а не ссылку на патчер — её всё равно надо будет качать, так как требуется старая версия. Или в ридми укажите, что версия Legacy не подходит, патчер пытается создать отчет об ошибке в какой-то неизвестной науке директории C:/My programs/чегототам. То есть если у меня таковой не наблюдается (а её не наблюдается), я даже его не посмотрю, этот отчёт.

З. Ы. Windows XP Sp3, DF чистая, отсюда: http://bay12games.com/dwarves/df_31_25_win.zip
« Последнее редактирование: 17 Марта 2012, 02:02:57 от Ohar »
Спойлер
«Клетки самый гарантированный вариант, но требуют много клеток :) и занимают эти клетки.» © Jesus
[свернуть]

Оффлайн Arex

  • Старожил
  • ****
  • Сообщений: 407
  • Ленивый дварфовод
    • Просмотр профиля
    • На викидварфии
Re: Русификация Dwarf Fortress
« Ответ #116 : 17 Марта 2012, 02:18:12 »
Ohar, это понятно, что готовый русификатор лучше выкладывать в виде пропатченной игры. Но пока перевод не закончен, такой патчер очень удобен. С ним каждый может, не дожидаясь обновлений и самостоятельно редактируя транс, вносить эти изменения в игру. Вот не понравился тебе перевод. Поменял в трансе слово на другое. Пропатчил и - вуаля! - готова исправленная версия.

Оффлайн Arex

  • Старожил
  • ****
  • Сообщений: 407
  • Ленивый дварфовод
    • Просмотр профиля
    • На викидварфии
Re: Русификация Dwarf Fortress
« Ответ #117 : 17 Марта 2012, 03:22:56 »
Во время игры в режиме приключений я обратил внимание, что некоторые фразы перевод попросту не затрагивает. Например, я пытался в экзешнике найти фрагменты ответа на вопрос о семье "I have no family to speak of", но безуспешно. сейчас я всё-таки решил выяснить, где же эти потерявшиеся фразы, и целенаправленно изучал все упоминания слова "family" в exe-файле.
В итоге я наткнулся на следующий адрес: "data/speech/no_family.txt" в окружении подобных же адресов.
Как вы думаете, что я увидел, открыв документ по этому адресу? Правильно,  "I have no family to speak of". То есть часть текстов диалогов вынесена из exe. В той паке всего 63 файла. Как правило, в них не больше 1-2 предложений. Зато как они записаны.
Рассмотрим содержимое произвольного файла (): "I seek treasures and bring them back to [CONTEXT:PLACE:TRANS_NAME] and have done so for [CONTEXT:NUMBER] of the years of my life." Текс там идёт совместно с токенами. Если переводить подобный текст, можно менять члены предложения и выстраивать грамматику предложения как заблагорассудится, при этом токены останутся рабочими. Теоретически, если вдруг удастся подобным образом вынести остальные предложения, то многих упомянутых выше в теме корявостей перевода можно будет избежать.
И ещё одно. В некоторых документах содержатся списки из нескольких строчек. В диалоге случайным образом используется только одна из строк. Таким образом, реакция NPC на одну и ту же фразу может выражать различными словами.
В общем, надо пробовать. Если что-нибудь толковое получится, отпишусь.
Надеюсь, я не слишком сумбурно всё изложил.

P.S. Попробовал заменить текст в одном из файлов на русский перевод. В игре всё отлично отображается.
При этом текст можно свободно менять не лету без перезапуска игры:
« Последнее редактирование: 17 Марта 2012, 03:55:12 от Arex »

Оффлайн Ohar

  • Пользователь
  • **
  • Сообщений: 68
    • Просмотр профиля
Re: Русификация Dwarf Fortress
« Ответ #118 : 17 Марта 2012, 12:24:44 »
Кстати, не переводятся имена. Но их же нужно тупо транслитерировать!  ;D Или это сложно? :-[

З. Ы. «Тупо» в том смысле что «особо вроде не надо морочиться». Или надо?)))
З. Ы. Ы. Вообще надо бы организоваться для допиливания до приличного вида. В том смысле чтобы не было дублирующих правок. А то сейчас каждый у себя будет править, а другой будет править то же самое — пустая растрата усилий. Иными словами, нужен общий сервис для обмена переводами, общий для всех. Что-то типа дропбокса. Кстати, как насчёт него?
Спойлер
«Клетки самый гарантированный вариант, но требуют много клеток :) и занимают эти клетки.» © Jesus
[свернуть]

Оффлайн insolor

  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1064
  • Adequate Reverse Engineer
    • Просмотр профиля
Re: Русификация Dwarf Fortress
« Ответ #119 : 17 Марта 2012, 12:52:10 »
Насчет имен, это нужно смотреть как они там генерируются. По поводу транслитерации пока не могу сказать насколько это будет сложно.

Перевод сейчас идет на http://www.dfwk.ru/User:Insolor/translation , этого вполне достаточно. Первоначально переводили с помощью сервиса коллективных переводов от гугла, но практика показала что вики лучше :)