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

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

    Ссылка на конкурсную тему - тык

[Tool] Easy Gothic Mod Translator

Sargon

Участник форума
Регистрация
22 Окт 2008
Сообщения
43
Благодарности
42
Баллы
170
Version 1.1
  • Direct translation of MOD/VDF-Files
  • Google-translations and regular translations
  • Works for any compatible language

Easy Gothic Mod Translator V1.1
----------------------------------------

Direct translator for Gothic MOD/VDF-Files

- For google-translations and regular translations, works for any language
- Openssl is necessary for google-connection (DLLs are enclosed)


Click-through:

- Choose source language and target language, english/german/russian/polish/czech or add a new language via google id and codepage (russian 1251, english/german 1252, polish/czech 1250)

- Import database, utf8 only, simple text-file with 2 columns (source - target) and TAB as separator, or extended file with header as described below, or proceed without database [skip]

- Load mod/vdf-file, which is checked against the database, the scripts will be decompiled and condensed to a table of text+context
For russian source language you have still the more reliable russian dectection, otherwise you have 2 options for detection (saver/riskier), see below

- If there are new lines (not covered by database), they are shown and can be google-translated (in case google blocks your IP temporarily, changing IP should help)
Alternatively with mark and ctrl+c you can get them on the clipboard for any usage

- Then the database can be saved, you can choose between DB[database], MT[mod-table] or both, csv-file as described below

- Then the modfile is translated, there is an option to translate savegames too, you should use the same database as for the mod-version, where the savegame is coming from, so that the quest names are identical.

- Finally the modfile is saved (you can either save all data or just the translated parts as a patch, in the latter case you still need the original file)
Before saving you can edit the timestamp, patches need a newer one than the original (older program versions added +6 years automatically, which is standard for Returning2-AB-updates).


Database:

- The extended database is utf8 only, has 8 columns with TAB as separator (TABs are not allowed as part of text lines, spaces should be sufficient), with the following header:
NR (sequential number), FILENR (file number), ID (symbol id), SYMBOL (symbol name), USE (type of usage), TRACE (backtrace of usage), RU (or EN,DE,PL,CZ,..source language), EN (or DE,RU,PL,CZ,..target language)
The columns must match the header, but otherwise the order of the columns is not fixed, so you can use a RU->EN database for EN->RU as well without changing anything.

- Difference between DB and MT: the ModTable represents the condensed mod-scripts, text lines occur in the same order and quantity as in the scripts (many doubles are possible)
The database is ordered alphabetically (by source language), reduces doubles and can include lines, which are not part of the current mod-file (you can use one DB for several mods)

- Editing the database: you should only edit the target-language-column (unless you know what you are doing), but you should be able to sort the table by USE or TRACE to find all npc/item names etc.
I did not want to include an own table-editor, but you could use LibreOffice Calc - you need to load/save csv with filter: utf8, separated by tab, and without string delimiter (neither " nor ')
Don't use an editor, where after loading and (unchanged) saving the files are not identical!

- In case you change quest titles midgame, the diary will probably not work for running quests with changed names, so starting a new game is advisable


Detection:

- Because of the way how system-strings and translateable strings are mixed up in gothic scripts, there is no flawless way for automatic distinctions between the two,
especially with the vast possibilities of Ikarus/LeGo/AST/Union.

- For russian source language the detection via russian characters is usually quite reliable, for other source languages you have context-detections (usage&backtrace) + assumptions based on script standards
As result of the context-detection you get 3 groups of strings:
1) should/can be translated
2) should/must not be translated
3) context does not exist, or was not detected (some may belong to 1, others to 2, and some are unused/irrelevant)

- The option "safer" will use group 1 only (something may be missing), while option "riskier" will use 1 and 3 (something may cause problems).
Depending on the mod there may be quite a difference between the 2 options or none at all.
Even the safer option may be flawed, so checking the resulting database for text, that should not be translated, is always advisable (for regular translations you go through the whole db anyway).
If you find something, that should not to be translated, you can either delete it from the db (but then it will pop up again as "new line" next time), or better leave it in and just make sure source and target strings are identical


Sargon
 

Вложения

  • Easy Gothic Mod Translator_V1.1.7z
    1,7 MB · Просмотры: 985
Последнее редактирование:

Sargon

Участник форума
Регистрация
22 Окт 2008
Сообщения
43
Благодарности
42
Баллы
170

Edit: v1.0 removed
 

Вложения

  • Ret2_AB_2019-11-17_ModTable_RU_EN.7z
    3,1 MB · Просмотры: 274
  • Destiny_1.5.1_ModTable_PL_EN.csv.7z
    2,6 MB · Просмотры: 176
  • ODYSSEY_2.6_ModTable_DE_EN.csv.7z
    3,1 MB · Просмотры: 170
Последнее редактирование:

jaggak

Участник форума
Регистрация
17 Фев 2020
Сообщения
7
Благодарности
1
Баллы
55
А есть какая-то связь с автором? У меня один раз запустился перевод, а потом стопорилось с ошибкой - Google Services not available! Как бы это поправить?
 

Sargon

Участник форума
Регистрация
22 Окт 2008
Сообщения
43
Благодарности
42
Баллы
170
Possible causes for "Google Services not available" can be:

- the OpenSSL-files are missing (libeay32.dll, ssleay32.dll)
- no internet-connection or your firewall is blocking it
- Google has blocked your IP temporarily for overuse, then changing your IP should help or continue another time

As soon as the problem is solved, the translation should continue automatically.
Alternatively you can stop and save the Database that was created up to this point, then later import this DB and continue with the rest..
 

Saradoc

Участник форума
Регистрация
24 Сен 2019
Сообщения
9
Благодарности
0
Баллы
95
There is a problem (immediate crash on game start) when you try to play mods translated with this tool together with Ninja 2.0: Ninja - Seite 13
mud-freak says it's not a problem with Ninja, so I hope that maybe you can fix it.
 

Sargon

Участник форума
Регистрация
22 Окт 2008
Сообщения
43
Благодарности
42
Баллы
170
There is a problem (immediate crash on game start) when you try to play mods translated with this tool together with Ninja 2.0: Ninja - Seite 13
mud-freak says it's not a problem with Ninja, so I hope that maybe you can fix it.


Well, mud-freak's statement is based on the assumption, that Decdat is flawless in this matter, but the dat-file produced by my program is legit, neither does it pretend to be bigger than it is, nor are there any memory overlaps. So neither the Gothic(2).exe nor the latest Gothicsourcer have any problems with it, it's just that Decdat (in it's current state) does not cover some unusual but legit cases and if Ninja is based on the same algorithm then it probably has the same deficiency.
Of course it's still my fault for implementing this unusual cases deliberately in V1.0 (out of "mischief" ;)) as signature and as subtle hint that it's easy to produce legit dat-files which Decdat does not handle.

For example, just add the following line to the source code, compile it, and decompile it with Decdat..
Код:
const c_item someitem[3] = {,,};


Here is a program that should remove the "unusualness" from a translated mod/vdf-file so that Decdat has no problem with it and neither should Ninja (untested).

Edit: 'usualizer' removed
 
Последнее редактирование:

Saradoc

Участник форума
Регистрация
24 Сен 2019
Сообщения
9
Благодарности
0
Баллы
95
Sadly it still crashes on game start.
I have the "Die Welt der Verurteilten"-Patch, which is one example of a mod causing trouble, in its normal and its "usualized" state attached.
 

Вложения

  • dwdv.zip
    2,5 MB · Просмотры: 89

Sargon

Участник форума
Регистрация
22 Окт 2008
Сообщения
43
Благодарности
42
Баллы
170
Sadly it still crashes on game start.
I have the "Die Welt der Verurteilten"-Patch, which is one example of a mod causing trouble, in its normal and its "usualized" state attached.


I have just tested a Ninja2-patch (sprint-patch) successfully with the "usualized" version, while the other version crashed.
Which patch do you want to use? Did you restart the GothicStarter?
 

Saradoc

Участник форума
Регистрация
24 Сен 2019
Сообщения
9
Благодарности
0
Баллы
95
I tried again with the same result, but when I removed the SystemPack it worked as you described. Do you have the Systempack installed?
 

Sargon

Участник форума
Регистрация
22 Окт 2008
Сообщения
43
Благодарности
42
Баллы
170
Yes, i have Systempack 1.7 installed.
 

Saradoc

Участник форума
Регистрация
24 Сен 2019
Сообщения
9
Благодарности
0
Баллы
95
Ok, this is weird: I tried again with the Sprint patch and it worked. If I remove the sprint patch, it crashes again. Tried it also with 2 other patches and it didn't crash. It seems to only crash if you have Ninja but no patch that requires it active at the moment.
 

mud-freak

Участник форума
Регистрация
12 Окт 2019
Сообщения
13
Благодарности
11
Баллы
105
I was told about this thread and the recent discussion. From what I read, my take (that resulting DAT-files would be malformatted) is not completely correct; sorry for the hasty conclusion. So I went and investigated a bit more thoroughly, how the problem between these generated DAT-files and Ninja comes about.

Although I was open to fix Ninja in case something was wrong there, I found indeed, that the problem does not originate from Ninja.


I looked at two generated translation DAT-files of "Die Welt der Verurteilten" and "Ustawka".

Both of the DAT-files contain one symbol more than their original, non-translated one. The additional symbol at the very end of the DAT-file is in both cases an empty instance of non-valid class and does not have a name.

This explains the crash. When Gothic is creating/unarchiving a oCMOB, its string-property "ownerGuildStr" will be checked against existing symbol names to fill the property "ownerGuild" with the respective symbol content (e.g. "GIL_GRD" will be resolved to 2, by finding "const int GIL_GRD = 2;" in the scripts). This property may very well be an empty string, if there is no owner guild. However, this empty string will match this additional empty-named symbol. Since this symbol is not a string but an instance, the game crashes.


I have a rough idea, why it only surfaces in conjunction with Ninja. It has to do with the fact that Ninja adds further symbols to the symbol table from the loaded patch, which in turn causes the invalid, unnamed symbol to be found (maybe because it is no longer the last one). But I cannot say anything conclusive without looking further into it. (see EDIT below).

Is this last, additional, invalid symbol intended? Or might it be an unintentional by-product? Maybe you could look into where it comes from during the translation process, Sargon.


PS: If I run the "usualizer" on the patch, this symbol is changed to a string "@egmt". Then the problem disappears, because there is no longer a symbol with the name "". The string "@egmt" does not appear in the original DAT-file and its content seems arbitrary. I don't know if there a purpose for it, but I assume that the generation might leave some arbitrary "residue" in an additional symbol?


EDIT: I now figured out why it only happens in conjunction with Ninja:
The symbol table is sorted by symbol names. A DAT-file is expected to be already sorted when Gothic loads it (this is usually the case). When Gothic searches for a symbol by name, it's done with binary search. Since the empty-name symbol is in the end (unsorted), it will never be found. Only when Ninja is installed and re-sorts the table out of necessity, this slip-up becomes visible. I conclude that the problem is not on Ninja.
 
Последнее редактирование:

Sargon

Участник форума
Регистрация
22 Окт 2008
Сообщения
43
Благодарности
42
Баллы
170
Well, as i said, i've added it deliberately as an experimental signature in V1.0 (it's not in v0.9) and it would have been harmless if not for Ninja.
Here's a program version without the additional symbol..

Edit: V1.0a removed
 
Последнее редактирование:

Zerin

Участник форума
Регистрация
10 Май 2010
Сообщения
239
Благодарности
65
Баллы
200
Приветствую, подскажите по поводу программы Easy Gothic Mod Translator на сколько реально не разбираясь ни в моддинге и не имея навыков программирования перевести мод. Ну и если переводить без знаний действительно возможно написать подробный гайд по работе с программой (а в идеале видеогайд)
 

bangorus

Участник форума
Регистрация
14 Окт 2009
Сообщения
1.702
Благодарности
1.242
Баллы
335
Easy Gothic Mod Translator decompile the mod file.
Is this dropping into some Temp?
 

Sargon

Участник форума
Регистрация
22 Окт 2008
Сообщения
43
Благодарности
42
Баллы
170
Приветствую, подскажите по поводу программы Easy Gothic Mod Translator на сколько реально не разбираясь ни в моддинге и не имея навыков программирования перевести мод. Ну и если переводить без знаний действительно возможно написать подробный гайд по работе с программой (а в идеале видеогайд)

You don't need any modding or programming knowledge to use this program, just follow the click-through (that's why it's called "easy"), you only need to know enough english to understand the buttons (and the readme).


Is this dropping into some Temp?

I don't understand the question, did you google-translate it? ;)
 

Sargon

Участник форума
Регистрация
22 Окт 2008
Сообщения
43
Благодарности
42
Баллы
170
Mod Translator save decompiled files somewhere ?

It does not decompile the whole source-code, only the context of the text-strings to determine if they are translateable or not.
This context is saved in the database/mod-table as described in the readme-file, so in case of a regular translation you will know if a string is a name, a description, a subtitle, a quest-title or whatever, and where it belongs.
 

bangorus

Участник форума
Регистрация
14 Окт 2009
Сообщения
1.702
Благодарности
1.242
Баллы
335
Understandably
 
Сверху Снизу