• Уважаемые гости и новички, приветствуем Вас на нашем форуме
    Здесь вы можете найти ответы практически на все свои вопросы о серии игр «Готика» (в том числе различных модах на нее), «Ведьмак», «Ризен», «Древние свитки», «Эра дракона» и о многих других играх. Можете также узнать свежие новости о разработке новых проектов, восхититься творчеством наших форумчан, либо самим показать, что вы умеете. Ну и наконец, можете обсудить общие увлечения или просто весело пообщаться с посетителями «Таверны».

    Чтобы получить возможность писать на форуме, оставьте сообщение в этой теме.
    Удачи!
  • Дорогие друзья, год подходит к концу, и пришло время подвести его итоги и наградить достойных

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

Gothic ½ Инструмент для переводчиков | zGlossary [Плагин для Union]

Gratt


Модостроитель
Регистрация
14 Ноя 2014
Сообщения
3.391
Благодарности
4.725
Баллы
625
  • Первое сообщение
  • #1
Общий смысл инструмента в том, чтобы развязать переводчикам руки.​
Для перевода вам не нужно иметь исходный код мода. Более того, сам мод трогать вообще не надо.​

Файл перевода будем называть словарем.​
Словарь - обычный текстовый файл с кодировкой Unicode LE (UCS-2 LE BOM).​

Синтаксис словаря делит документ на теги:​
Тег ; - это комментарий. За стоящим в начале строки символом можно писать любой произвольный текст.​

Тег Text - строка, следующая за этим тегом, будет определять исходную строку, которую необходимо перевести.​

Языковые теги Rus/Pol/Eng/Ger - текст, следующий за тегом, будет определять один из вариантов перевода строки Text.​

Тег OneMore - этот тег говорит, что если в скриптах существует более одного экземпляра строки Text, то следующий вариант перевода для предшествующего языка будет выбираться поочередно.​

Пример готового словаря:
1579297956683.png

Всё! Больше никаких действий над словарем производить не нужно.​

Теперь разберемся как подключить словарь к игре. Тут все предельно шаблонно. Необходимо создать .patch файл в кодировке ANSI (который всегда запускается автоматически, если виден игрой), в нем вызвать плагин zGlossary и передать имена ваших словарей.​

Пример такого .patch файла:​
1579296727533.png

Можно сделать множество словарей, в один засунуть переводы предметов, в другой переводы писем, в третий диалоги, а затем подключить через .patch​
Union:
#engine
    #patch
        LoadPlugins("zGlossary")
        LoadGlossary("GlossaryItems.gls")
        LoadGlossary("GlossaryLetters.gls")
        LoadGlossary("GlossaryDialogs.gls")
    #/patch
#/engine

Все просто, верно? Но что делать с релизом перевода? Выкладывать кучу текстовиков не самая лучшая идея, поэтому все свои .dll, .patch и .gls спокойно пакуем в .vdf или .mod. Весь функционал сохранится, Union сам найдет документы внутри томов.​

Кстати, о шрифтах. Очевидно, он необходим для правильного отображения теста соответствующих локализаций. Предлагаю интересный фокус. Находите такие шрифты, называете их удобным образом, например в конце имени приписываете тег языка. А потом изменяете имя шрифта в скриптах на тот, который необходим. И вуаля, ваш словарь ещё и шрифт динамически менять умеет!​
1579296987545.png



Теперь разберемся с пользовательскими вопросами. Как словарь определит язык игрока? Он сделает запрос у Union и тот ему ответит, какой целевой язык используется системой. Результат запроса продублируется в Systempack.ini, секцию Glossary, в параметр Language, который всегда можно изменить. Например у меня такой язык определится как Rus.​


Прикладываю тестовый исходник, проверенный на G1 с ModFix от ElderGamer
Внутри .dll, готовый .patch и .gls. А также синтаксисы для Notepad++.​
 

Вложения

  • zGlossaryTest.zip
    50,9 KB · Просмотры: 138
Последнее редактирование модератором:

Gratt


Модостроитель
Регистрация
14 Ноя 2014
Сообщения
3.391
Благодарности
4.725
Баллы
625
Так не переводи что уже переведено :confused:

В чем проблема то? Словарь не перезаписывает dat файл. Ты просто допереводишь что нужно и всё.
 

Gratt


Модостроитель
Регистрация
14 Ноя 2014
Сообщения
3.391
Благодарности
4.725
Баллы
625
Ну так бы и сказал. Словарь стандартных слов и выражений.
 

wahoonie

Участник форума
Регистрация
30 Окт 2021
Сообщения
4
Благодарности
0
Баллы
55
Hi Gratt,

thanks for your plugin.

I tried to use it to translate some notifications on the screen not translated by other union plugin itself. I copied the zGlossary.dll to my games system\autorun folder, the zGlossary.patch and the TestGlossary.gls to the system folder. If I start GOTHIC the following error message appears:

Error.jpg


For editing the TestGlossary.gls I used Notepad++ and saved the file with "UCS-2 LE-BOM"-encoding.

My TestGlossary.gls is appended (renamed as .txt, because the appending of .gls was blocked).

Greetings

wahoonie

edit: As I seen in a comment above, I edited the TestGlossary.gls and leave the first line empty. Now the game is starting without error.

edit2: Just realized that the zGlossary plugin is for translating mods, not other plugins... *sorry*
 
Последнее редактирование:

Skino

Участник форума
Регистрация
1 Янв 2022
Сообщения
6
Благодарности
0
Баллы
55
Наверное имеет смысл обратиться к N1kX как к переводчику. Мне интересно разобрать некоторые рабочие моменты, которые могут вызвать трудности.

Итак, начну с пояснения механики словаря. В момент загрузки dat и ou я перехватываю инициализацию строковых переменных. Нахожу соответствия в словаре и меняю на перевод. За счёт этого игра не теряет в производительности.
Предлагаю обсудить этап выдергивания строк из игры. Можно извлечь все тексты из бинарников в отдельный файл, как бы сгенерировав основу тегов Text, а также сразу для всех дубликатов сделать суффикс типа #1, #2, #3. Тогда будет наглядно видно, когда используется конкретная фраза.

Возможно есть ещё какие-то важные, но не очевидные для меня моменты? Стоит ли добавлять какие-то команды для марвин консоли?
В общем жду от вас каких-то комментариев.
Привет, а есть возможность опубликовать исходники. Идея с модом для перевода очень хорошая. Спасибо.
 

Gratt


Модостроитель
Регистрация
14 Ноя 2014
Сообщения
3.391
Благодарности
4.725
Баллы
625
А смысл от хорошей идеи, если никому это не надо
 

Skino

Участник форума
Регистрация
1 Янв 2022
Сообщения
6
Благодарности
0
Баллы
55
А смысл от хорошей идеи, если никому это не надо
Мне надо, только чуть подкрутить хочу. К тому же больше, там у тебя ещё есть плагин на отрисовку ttf & open type, который на гитхабе лежит, если их скрестить - вообще пушка будет, нужно только посмотреть что можно отсюда выжать. Ты там вроде писал что плохо робит с lego & icarus.
 

Xeдин


Модостроитель
Регистрация
3 Дек 2008
Сообщения
1.795
Благодарности
2.326
Баллы
380
А смысл от хорошей идеи, если никому это не надо
Я пробовал на Золотых воротах, что-то переводит, что-то не хочет. Например в меню новую игру перевел, а вот топор и текст не захотел

1765948628305.png


Хорошо бы развить этот инструмент ))) А то достал уже EGMT с его кривостями.

есть плагин на отрисовку ttf & open type, который на гитхабе лежит,
Сейчас очень много народа пользуется GitHub - SaiyansKing/Gothic-TTF , причем версией в которой я добавлял поддержку изменения размера шрифта в DX11
 

Skino

Участник форума
Регистрация
1 Янв 2022
Сообщения
6
Благодарности
0
Баллы
55
Я пробовал на Золотых воротах, что-то переводит, что-то не хочет. Например в меню новую игру перевел, а вот топор и текст не захотел

Посмотреть вложение 135568

Хорошо бы развить этот инструмент ))) А то достал уже EGMT с его кривостями.


Сейчас очень много народа пользуется GitHub - SaiyansKing/Gothic-TTF , причем версией в которой я добавлял поддержку изменения размера шрифта в DX11
У Gratt вроде есть свой аналог. GitHub - Gratt-5r2/zFont
 

Xeдин


Модостроитель
Регистрация
3 Дек 2008
Сообщения
1.795
Благодарности
2.326
Баллы
380
Gratt, ага, похоже спец. символы не понимает

1766069766650.png


Поправить бы, тогда можно попробовать перевести золотые ворота 2 ))
 

Skino

Участник форума
Регистрация
1 Янв 2022
Сообщения
6
Благодарности
0
Баллы
55
Вообще не повезло что на другие более "сложные" плагины есть исходники, а на этот нет. Я так понимаю нужно ждать выходных.
 

Gratt


Модостроитель
Регистрация
14 Ноя 2014
Сообщения
3.391
Благодарности
4.725
Баллы
625
Поправить бы, тогда можно попробовать перевести золотые ворота 2 ))
Он лежит в папке "говно" на мертвом из-за винды ссд. Если умеешь реверсить микроновские контроллеры, могу диск почтой отправить. Кто переводить то будет? Все варианты в стиме собраны на базе оригинального контента
 

Xeдин


Модостроитель
Регистрация
3 Дек 2008
Сообщения
1.795
Благодарности
2.326
Баллы
380
Gratt, ясно, жаль, да перевести небольшой мод можно и самим вручную. Твой инструмент просто реально был был бы удобнее чем EGMT и подозреваю чем weblate в плане интеграции с модом и обновлениями. В золотых воротах наверное лучше через weblate делать, поскольку авторы через него переводы интегрируют, но в других модах его же нет.
 

Skino

Участник форума
Регистрация
1 Янв 2022
Сообщения
6
Благодарности
0
Баллы
55
Он лежит в папке "говно" на мертвом из-за винды ссд. Если умеешь реверсить микроновские контроллеры, могу диск почтой отправить. Кто переводить то будет? Все варианты в стиме собраны на базе оригинального контента
Понятно. А подскажи что именно ты хукал:




А по поводу перевода я готов написать простой скрипт на питоне для машинного перевода. Дальше достаточно только играть и смотреть где перевод не корректен быстренько в блокноте редактировать.

Это что бы без спойлеров, а так просто можно сидеть и тупо переводить в блокноте.
 
Последнее редактирование:
Сверху Снизу