Unofficial Patch 1.5 - New Texts Source Translation System
Posted: 18 Sep 2019, 17:34
Hello.
Today I realized the "idea" of bringing the Multi-Language support of Unofficial Patch 1.5 in-game texts.
Two important things:
- It allows us to translate in-game Unofficial Patch 1.5 texts from Unofficial Patch Files\EXEGeneratorData\TextsSource.txt
- It doesn't allow us to translate the Launcher texts (yet, and I don't know if it will be ever needed).
How does the new System work, and why it won't slow down further UP1.5 development?
1. Unofficial Patch 1.5 generates file "zips\dbtext_cheats.utf8" from Text Source files in "Unofficial Patch Files\EXEGeneratorData" folder. For example: "TextsSource.txt", "ScreenResolutionsTextsXX.txt", etc.
2. Since upcoming update 157019 (release date is unknown yet), the Launcher loads files: "TextsSourceTranslation_LANGNAME.txt". It is based on the following UP1.5 Settings -> custom configuration commands:
# TranslateTextsSourceFile=1 | Enabled (default option), uses the language based on your installed game language.
# TranslateTextsSourceFile=0 | Disabled, uses the old text database method from the previous versions of UP1.5 (English only).
# TranslateTextsSourceFile=FILENAME | Allows you to use a custom translation file, like: "Unofficial Patch Files\EXEGeneratorData\TextsSourceTranslation_FILENAME.txt".
3. The Launcher keeps the original amount of entries from file "TextsSource.txt". During the generation process it checks each entry from "TextsSource.txt" for existence inside "TextsSourceTranslation_LANGNAME.txt". If the entry is missing in "TextsSourceTranslation_LANGNAME.txt", then "dbtext_cheats.utf8" gets non-translated entry directly from "TextsSource.txt". Otherwise, it gets the existing entry from "TextsSourceTranslation_LANGNAME.txt". Additional entries (which don't exist in "TextsSource.txt") are being ignored. The order of entries in "TextsSourceTranslation_LANGNAME.txt" doesn't matter - it can be totally random.
4. Thanks to this method, I won't need to wait for people who decide to help in translation and I will be able to add English text entries with Minor Updates. Then it's up to the other people when (and if) they provide updated translation files.
5. It also allows us to translate Unofficial Patch 1.5 text entries to languages which weren't originally published by any distribution, however I don't think it will be ever used, since other game texts will remain untranslated for those "new" languages.
Which languages are already translated?
- The full translation (of everything) is available for the following languages:
* English
* Polish
* Italian
* German
- The partial translation (only entries which were available in db.zip) is available for the following languages:
* French
* Chinese
* Czech
* Spanish
* Hungarian
* Russian
Guidelines for people who would like to help in translation:
- The translation doesn't need to be exact. It can be re-written to sound nicely in your language.
- It is not recommended to add extra information (not available in English source).
- It's important to use your language characters (ü ß ó ł ą ś ć ż ź, etc.) and keep the correct punctuation.
- The length of messages like Multiplayer notifications (login errors, NAT joining, etc.) should have possibly the similar length as the original English entry. It's because longer texts may not fit in message boxes. It doesn't affect units/building descriptions.
- "Unofficial Patch 1.5" name should not be translated and used in English form. The only exception is term "Unofficial Version 1.5", which can be translated. It's for cohesion reasons.
- Please don't hurry and carefully check if the entries have a correct format: EntryName,"""Text""" (comma, 3 quotes, text, 3 quotes).
- Please check file "TextsSourceTranslation_Polish.txt" to check how it should look like (it has been translated by me).
- For entries like screen resolutions, please use the original .utf8 files from "zips_ee2x\EE2X_db.zip\EE2X_db\Text" (and of course add additional information if there are any)
If someone is interested in helping in translation - please write in this topic.
Here's the Preview version of update 157019 (it will be deleted from this topic after the official release):
Deleted
To test your translated file, please:
- Put your language name to UnofficialVersionConfig.txt like: "TranslateTextsSourceFile=German", "TranslateTextsSourceFile=Chinese", etc.
- Delete file "zips\dbtext_cheats.utf8" to force Launcher re-generation (do it every time you update the "TextsSourceTranslation_LANGNAME.txt").
By the way, it's not hard to translate, I just wrote a detailed guide to answer all potential questions and prevent correction requests.
Today I realized the "idea" of bringing the Multi-Language support of Unofficial Patch 1.5 in-game texts.
Two important things:
- It allows us to translate in-game Unofficial Patch 1.5 texts from Unofficial Patch Files\EXEGeneratorData\TextsSource.txt
- It doesn't allow us to translate the Launcher texts (yet, and I don't know if it will be ever needed).
How does the new System work, and why it won't slow down further UP1.5 development?
1. Unofficial Patch 1.5 generates file "zips\dbtext_cheats.utf8" from Text Source files in "Unofficial Patch Files\EXEGeneratorData" folder. For example: "TextsSource.txt", "ScreenResolutionsTextsXX.txt", etc.
2. Since upcoming update 157019 (release date is unknown yet), the Launcher loads files: "TextsSourceTranslation_LANGNAME.txt". It is based on the following UP1.5 Settings -> custom configuration commands:
# TranslateTextsSourceFile=1 | Enabled (default option), uses the language based on your installed game language.
# TranslateTextsSourceFile=0 | Disabled, uses the old text database method from the previous versions of UP1.5 (English only).
# TranslateTextsSourceFile=FILENAME | Allows you to use a custom translation file, like: "Unofficial Patch Files\EXEGeneratorData\TextsSourceTranslation_FILENAME.txt".
3. The Launcher keeps the original amount of entries from file "TextsSource.txt". During the generation process it checks each entry from "TextsSource.txt" for existence inside "TextsSourceTranslation_LANGNAME.txt". If the entry is missing in "TextsSourceTranslation_LANGNAME.txt", then "dbtext_cheats.utf8" gets non-translated entry directly from "TextsSource.txt". Otherwise, it gets the existing entry from "TextsSourceTranslation_LANGNAME.txt". Additional entries (which don't exist in "TextsSource.txt") are being ignored. The order of entries in "TextsSourceTranslation_LANGNAME.txt" doesn't matter - it can be totally random.
4. Thanks to this method, I won't need to wait for people who decide to help in translation and I will be able to add English text entries with Minor Updates. Then it's up to the other people when (and if) they provide updated translation files.
5. It also allows us to translate Unofficial Patch 1.5 text entries to languages which weren't originally published by any distribution, however I don't think it will be ever used, since other game texts will remain untranslated for those "new" languages.
Which languages are already translated?
- The full translation (of everything) is available for the following languages:
* English
* Polish
* Italian
* German
- The partial translation (only entries which were available in db.zip) is available for the following languages:
* French
* Chinese
* Czech
* Spanish
* Hungarian
* Russian
Guidelines for people who would like to help in translation:
- The translation doesn't need to be exact. It can be re-written to sound nicely in your language.
- It is not recommended to add extra information (not available in English source).
- It's important to use your language characters (ü ß ó ł ą ś ć ż ź, etc.) and keep the correct punctuation.
- The length of messages like Multiplayer notifications (login errors, NAT joining, etc.) should have possibly the similar length as the original English entry. It's because longer texts may not fit in message boxes. It doesn't affect units/building descriptions.
- "Unofficial Patch 1.5" name should not be translated and used in English form. The only exception is term "Unofficial Version 1.5", which can be translated. It's for cohesion reasons.
- Please don't hurry and carefully check if the entries have a correct format: EntryName,"""Text""" (comma, 3 quotes, text, 3 quotes).
- Please check file "TextsSourceTranslation_Polish.txt" to check how it should look like (it has been translated by me).
- For entries like screen resolutions, please use the original .utf8 files from "zips_ee2x\EE2X_db.zip\EE2X_db\Text" (and of course add additional information if there are any)
If someone is interested in helping in translation - please write in this topic.
Here's the Preview version of update 157019 (it will be deleted from this topic after the official release):
Deleted
To test your translated file, please:
- Put your language name to UnofficialVersionConfig.txt like: "TranslateTextsSourceFile=German", "TranslateTextsSourceFile=Chinese", etc.
- Delete file "zips\dbtext_cheats.utf8" to force Launcher re-generation (do it every time you update the "TextsSourceTranslation_LANGNAME.txt").
By the way, it's not hard to translate, I just wrote a detailed guide to answer all potential questions and prevent correction requests.