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

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

Оффлайн Skin36

  • Старожил
  • ****
  • Сообщений: 320
    • Просмотр профиля
Re: Русификация Dwarf Fortress
« Ответ #1965 : 19 Декабрь 2014, 19:35:39 »
для версии 40.13
00E81000-начальный адрес df.

эти функции используются для обработки фильтруемых строк.
Здесь возможно придется поменять условия a-z на a-я. Что делать с ё пока не ясно, я бы ее убрал из текста , чтобы патчит 1:1.

00EBB310 upper_case_string
00EBB490 capitalize_string_words
00EBB690 capitalize_string_first_word
____________________________________________________________________________
тут функция по обработке нажатий клавиш.
надо обратить внимание что все нажатия дублируются.
Внизу функции еще набор каких то вызовов с двумя параметрами связанных с текстом.
Их назначение пока не понял.
Патчил именно эту функцию.
012ECD20

тут идут триггеры которые срабатывают при нажатии соответствующих клавиш
012ECD75                 mov     bl, 61h
                                 ......
                                  mov     bl, 62h

после этого идут вызовы SDL, потом должна быть функция по переводу буквы в верхний регистр.Ее еще не нашел.

ну и наконец условие с a-z перед вызовом функции фильтра.Я его отключил для тестов.
012026A0                 mov     cl, [esp+eax+54h]


Пока это все работает только в английской раскладке, ну может удастся и это исправить. т к при выборе русской раскладки функция 012ECD20 также вызывается, но ни один из триггеров по установки кода букв не срабатывает.

фильтр в работе
(нажмите, чтобы показать/скрыть)
« Последнее редактирование: 20 Декабрь 2014, 12:01:18 от insolor »
За это сообщение 7 участников сказали спасибо: Arex, SnaKe, Лилим, Lens, Jesus, Ratinod, Dmitry

Оффлайн Skin36

  • Старожил
  • ****
  • Сообщений: 320
    • Просмотр профиля
Re: Русификация Dwarf Fortress
« Ответ #1966 : 21 Декабрь 2014, 10:09:14 »
С кодом разобрались. Иметь ввод в двух раскладках врядли получится. Я все таки предлагаю сделать ввод в русской раскладке, для этого пропатчить enum для кодов русских букв, сами буквы, ну и  использывать файл куйбиндингов Arexа.
Я пока попробую пропатчить версию 34.11, для тестирования.
За это сообщение 5 участников сказали спасибо: Lens, Лилим, Jesus, Ratinod, Dmitry

Оффлайн insolor

  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1047
  • Adequate Reverse Engineer
    • Просмотр профиля
Re: Русификация Dwarf Fortress
« Ответ #1967 : 23 Декабрь 2014, 10:25:37 »
С кодом разобрались. Иметь ввод в двух раскладках врядли получится. Я все таки предлагаю сделать ввод в русской раскладке, для этого пропатчить enum для кодов русских букв, сами буквы, ну и  использывать файл куйбиндингов Arexа.
Я пока попробую пропатчить версию 34.11, для тестирования.
Ящитаю, можно (и нужно) конкретно оптимизировать ту функцию, заменив кучу ифов на выбор значения из массива по энуму в качестве индекса, тогда у нас появится пространство для маневра. К тому же, ничего не мешает вообще вынести функцию целиком в отдельную секцию и делать с ней все что нам заблагорассудится.
За это сообщение 1 участник сказал спасибо: Dmitry

Оффлайн insolor

  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1047
  • Adequate Reverse Engineer
    • Просмотр профиля
Re: Русификация Dwarf Fortress
« Ответ #1968 : 27 Декабрь 2014, 17:35:38 »
Ресурсы перевода на transifex.com был обновлены до версии 0.40.23.

(нажмите, чтобы показать/скрыть)
За это сообщение 6 участников сказали спасибо: Skin36, Midas, Ratinod, Lens, SnaKe, Jesus

Оффлайн SnaKe

  • Пользователь
  • **
  • Сообщений: 98
    • Просмотр профиля
Re: Русификация Dwarf Fortress
« Ответ #1969 : 28 Декабрь 2014, 18:40:46 »
Ресурсы перевода на transifex.com был обновлены до версии 0.40.23.

(нажмите, чтобы показать/скрыть)

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

пы.сы. ребят, доступ к переводу можно получить? :) авторизовался через google+ только редактировать ничего не могу.
« Последнее редактирование: 28 Декабрь 2014, 18:54:00 от SnaKe »

Оффлайн insolor

  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1047
  • Adequate Reverse Engineer
    • Просмотр профиля
Re: Русификация Dwarf Fortress
« Ответ #1970 : 28 Декабрь 2014, 22:14:35 »
пы.сы. ребят, доступ к переводу можно получить? :) авторизовался через google+ только редактировать ничего не могу.
Тебе нужно добавиться в команду перевода на русский. Тогда мне придет оповещение и я тебя добавлю.
« Последнее редактирование: 29 Декабрь 2014, 08:08:19 от insolor »

Оффлайн UncleXaM

  • Новичок
  • *
  • Сообщений: 29
    • Просмотр профиля
Re: Русификация Dwarf Fortress
« Ответ #1971 : 01 Январь 2015, 02:39:13 »
Уже готово, ?
где можно посмотреть, ?
Сей труд!
Нет сил терпеть.  ;D

Оффлайн SnaKe

  • Пользователь
  • **
  • Сообщений: 98
    • Просмотр профиля
Re: Русификация Dwarf Fortress
« Ответ #1972 : 01 Январь 2015, 11:11:31 »
Перевел оставшиеся 13 строк.
А где инструкция по русификации?
В смысле, как превратить po в trans.txt?
Это немного похоже на ведьмовской рецепт ;)
Заходим сюда, нажимаем на строку "DwarfFortress 0.40.x hardcoded strings". Там нажимаем на "Download for translation", скачивается файлик с расширением po.
Далее, предполагаем что Python 3.4 и poedit уже установлены.
Заходим сюда, жмём "Download repository".
Распаковываем в заранее приготовленную папку любую папку.
Заходим сюда и скачиваем stringdump_0_40_10.txt. Скидываем его в папку, куда распаковали репозиторий df-gettext-toolkit.
Туда же кидаем ранее скачанный файлик с расширением po. Открываем его программой poedit. В заходим в файл->параметры->редактор проверяем, чтобы стояла галочка "при сохранении автоматически компилировать файл mo".
Жмём ок, жмём сохранить. В папке должен появиться файл с расширением mo. Запускаем скрипт mo2trans.py. Скрипт может ругнуться на отсутствующие пробелы в начале/конце (leading/trailing space) некоторых переводов. Это желательно проверить. Везде кроме "Histories of" пробелы нужны. Если все успешно, должен появиться файлик "tmp_trans.txt". Его нужно преобразовать в кодировку 1251 из UTF-8 (пока не разобрался, как это сделать средствами питона, так чтобы питон не ругался на какие-то непонятные ему символы) и переименовать в trans.txt.

Решил сделать trans.txt использую твоё волшебство, в итоге, у меня по какой-то причине ругался на файл stringdump_0_40_12.txt, по ссылке есть только stringdump_0_40_10.txt, на что влияет этот файл? :)

пы.сы. кому надо вложил актуальный trans.txt ... вроде бы :)

Оффлайн insolor

  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1047
  • Adequate Reverse Engineer
    • Просмотр профиля
Re: Русификация Dwarf Fortress
« Ответ #1973 : 01 Январь 2015, 13:02:24 »
Перевел оставшиеся 13 строк.
А где инструкция по русификации?
В смысле, как превратить po в trans.txt?
Это немного похоже на ведьмовской рецепт ;)
Заходим сюда, нажимаем на строку "DwarfFortress 0.40.x hardcoded strings". Там нажимаем на "Download for translation", скачивается файлик с расширением po.
Далее, предполагаем что Python 3.4 и poedit уже установлены.
Заходим сюда, жмём "Download repository".
Распаковываем в заранее приготовленную папку любую папку.
Заходим сюда и скачиваем stringdump_0_40_10.txt. Скидываем его в папку, куда распаковали репозиторий df-gettext-toolkit.
Туда же кидаем ранее скачанный файлик с расширением po. Открываем его программой poedit. В заходим в файл->параметры->редактор проверяем, чтобы стояла галочка "при сохранении автоматически компилировать файл mo".
Жмём ок, жмём сохранить. В папке должен появиться файл с расширением mo. Запускаем скрипт mo2trans.py. Скрипт может ругнуться на отсутствующие пробелы в начале/конце (leading/trailing space) некоторых переводов. Это желательно проверить. Везде кроме "Histories of" пробелы нужны. Если все успешно, должен появиться файлик "tmp_trans.txt". Его нужно преобразовать в кодировку 1251 из UTF-8 (пока не разобрался, как это сделать средствами питона, так чтобы питон не ругался на какие-то непонятные ему символы) и переименовать в trans.txt.

Решил сделать trans.txt использую твоё волшебство, в итоге, у меня по какой-то причине ругался на файл stringdump_0_40_12.txt, по ссылке есть только stringdump_0_40_10.txt, на что влияет этот файл? :)

пы.сы. кому надо вложил актуальный trans.txt ... вроде бы :)

Файлы stringdump вплоть до 0.40.23 можно скачать здесь: https://bitbucket.org/dfint/stringdumps/src
Соответственно, нужно использовать 0.40.23, и в файле mo2trans.py stringdump_0_40_13_noprefix.txt поправить на stringdump_0_40_23_noprefix.txt. Если еще где-то будет ругаться, то поправить аналогично.
Файл stringdump - "вытяжка" имеющихся в экзешнике строк. Используется как шаблон (template) перевода - с помощью него перевод обновляется до новой версии и на него же накатыватся имеющийся перевод (как в данном случае). Если использовать старый файл, то работать будет, но не будет перевода всяких "geldables" ;)
За это сообщение 1 участник сказал спасибо: SnaKe

Оффлайн SnaKe

  • Пользователь
  • **
  • Сообщений: 98
    • Просмотр профиля
Re: Русификация Dwarf Fortress
« Ответ #1974 : 01 Январь 2015, 15:23:04 »
Перевел оставшиеся 13 строк.
А где инструкция по русификации?
В смысле, как превратить po в trans.txt?
Это немного похоже на ведьмовской рецепт ;)
Заходим сюда, нажимаем на строку "DwarfFortress 0.40.x hardcoded strings". Там нажимаем на "Download for translation", скачивается файлик с расширением po.
Далее, предполагаем что Python 3.4 и poedit уже установлены.
Заходим сюда, жмём "Download repository".
Распаковываем в заранее приготовленную папку любую папку.
Заходим сюда и скачиваем stringdump_0_40_10.txt. Скидываем его в папку, куда распаковали репозиторий df-gettext-toolkit.
Туда же кидаем ранее скачанный файлик с расширением po. Открываем его программой poedit. В заходим в файл->параметры->редактор проверяем, чтобы стояла галочка "при сохранении автоматически компилировать файл mo".
Жмём ок, жмём сохранить. В папке должен появиться файл с расширением mo. Запускаем скрипт mo2trans.py. Скрипт может ругнуться на отсутствующие пробелы в начале/конце (leading/trailing space) некоторых переводов. Это желательно проверить. Везде кроме "Histories of" пробелы нужны. Если все успешно, должен появиться файлик "tmp_trans.txt". Его нужно преобразовать в кодировку 1251 из UTF-8 (пока не разобрался, как это сделать средствами питона, так чтобы питон не ругался на какие-то непонятные ему символы) и переименовать в trans.txt.

Решил сделать trans.txt использую твоё волшебство, в итоге, у меня по какой-то причине ругался на файл stringdump_0_40_12.txt, по ссылке есть только stringdump_0_40_10.txt, на что влияет этот файл? :)

пы.сы. кому надо вложил актуальный trans.txt ... вроде бы :)

Файлы stringdump вплоть до 0.40.23 можно скачать здесь: https://bitbucket.org/dfint/stringdumps/src
Соответственно, нужно использовать 0.40.23, и в файле mo2trans.py stringdump_0_40_13_noprefix.txt поправить на stringdump_0_40_23_noprefix.txt. Если еще где-то будет ругаться, то поправить аналогично.
Файл stringdump - "вытяжка" имеющихся в экзешнике строк. Используется как шаблон (template) перевода - с помощью него перевод обновляется до новой версии и на него же накатыватся имеющийся перевод (как в данном случае). Если использовать старый файл, то работать будет, но не будет перевода всяких "geldables" ;)

Спасибо за информацию!) Тогда прикрепил актуальный trans.txt ))
« Последнее редактирование: 01 Январь 2015, 19:09:46 от insolor »

Оффлайн insolor

  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1047
  • Adequate Reverse Engineer
    • Просмотр профиля
Re: Русификация Dwarf Fortress
« Ответ #1975 : 01 Январь 2015, 19:40:50 »
Уже готово, ?
где можно посмотреть, ?
Сей труд!
Нет сил терпеть.  ;D
До "готово" еще очень далеко. Даже "захардкоженых" строк еще около 1300 осталось непереведенных.

Оффлайн SnaKe

  • Пользователь
  • **
  • Сообщений: 98
    • Просмотр профиля
Re: Русификация Dwarf Fortress
« Ответ #1976 : 02 Январь 2015, 20:17:43 »
Обновил файлик :)
За это сообщение 2 участников сказали спасибо: Nazgulik, Ratinod

Оффлайн ALZID

  • Новичок
  • *
  • Сообщений: 9
    • Просмотр профиля
Re: Русификация Dwarf Fortress
« Ответ #1977 : 11 Январь 2015, 18:48:53 »
эт я чот непонял  0.40.* чтоли перевили на 90%+ уже ?

Оффлайн insolor

  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1047
  • Adequate Reverse Engineer
    • Просмотр профиля
Re: Русификация Dwarf Fortress
« Ответ #1978 : 11 Январь 2015, 19:08:40 »
эт я чот непонял  0.40.* чтоли перевили на 90%+ уже ?
То что вшито в экзешник - да, около того. То что во внешних текстовых файлах еще не адаптировано для новой версии.
За это сообщение 1 участник сказал спасибо: Лилим

Оффлайн ALZID

  • Новичок
  • *
  • Сообщений: 9
    • Просмотр профиля
Re: Русификация Dwarf Fortress
« Ответ #1979 : 13 Январь 2015, 00:15:10 »
народ вы уж простите за нелепые вопросы, я тут вылез из под земли после полугода копая с дварфами туннели. И вот увидел что уже версия 0.40.24 и есть русификаторы (аллилуйя). НО !!! пытаясь разобраться (noob found :-[) я вкрай запутался.

Я нашел вот эти ресурсы:
https://bitbucket.org/insolor/dfrus/downloads
https://bitbucket.org/dfint/dfrus-raws/downloads
https://www.transifex.com/projects/p/dwarf-fortress/language/ru/
С какова ресурса брать русификаторы, какие брать и как их прикручивать (раньше делал по этой инструкции https://bitbucket.org/insolor/dfrus/wiki/Home) я так до конца и не догнал. Прошу объяснить, рассказать и тыкнуть носом. Ибо я со своими собратьями по маразму будем начинать новую крепость, поскольку та погрязла во лжи, коррупции, багах и лагах.

С Уважением. Чувак, который пишет на форуме.