MG/Translations/Techtrees

Since MegaGlest 3.8.0-dev+r4436 (that is between 3.7.1 and 3.8.0-beta1, so definitely version 3.8.0-beta1 and newer) the game fully supports (initial support was available in 3.8.0-dev+r3285) translating all the techtree related strings such as unit or structure titles and unit/attack properties which display on the graphical user interface.

Translation of distributed techtrees
Techtrees which are distributed and installed with MegaGlest - that's currently the Megapack only - can and should be translated by editing the Megapack resource on Transifex . Should there be more techtrees distributed with MegaGlest in the future, they will be added as separate resources on Transifex. Should we forget to do so, please bring it up on the translation mailing list (see below).

Translation of non-distributed techtrees
Normally, techtrees not distributed with MegaGlest need to be localized manually. However, a growing number of techtrees can now be translated on Transifex.

Translation on Transifex
Non-distributed techtrees such as those listed on the mod menu, can now be translated on the megaglest-mods-techtrees project on Transifex. Please read Unofficial Transifex's project of Techtree Translations for more information.

Initialization
Before starting with a manual translation process, please get in touch with the MegaGlest project maintainers on Transifex (they usually have forum accounts, too) or the MegaGlest project itself and explain that you would like to translate a techtree (and which one). They may then grant you access to the translation project on Transifex, and this should make things considerably easier for you and other translators.

If you would still like to manually translate, please read on. First of all, a techtree needs to be prepared for localization. This only needs to be done the first time a techtree is localized, or when units / structures / resources / upgrades have changed in the techtree's XML files.

This process creates / updates the (English) source language files containing all techtree related translation keys, based on values found in the techtrees' (already existing) XML files. To do the initialization for an example techtree MyTechtree whose main XML file is mytechtree.xml, change into the directory MegaGlest is installed in and run the executable binary file as follows (again replace mytechtree by the name of your techtree):

Linux, OS X
./megaglest --translate-techtrees=mytechtree

Windows
megaglest.exe --translate-techtrees=mytechtree

Editing
Once initialized, the techtree can be localized by manually editing the files:


 * For a given techtree MyTechtree create a subdirectory named lang within the mytechtree (techtree) directory, i.e. techs/mytechtree/lang/ - if this directory does not exist then this techtree has not been initialized for localization, yet.


 * In this new directory, create a new create a new copy of the source translation file  mytechtree_english.lng as mytechtree_language.lng where language is the localization you wish to create (skip this step if the target file already exists). Have a look at how it's done for Megapack if you'd like to get a better idea of what the file / directory structure should look like.


 * Edit the newly created file mytechtree_language.lng. You will notice that there are several keys in this format:
 * ResourceTypeName_food=Yummies
 * UnitTypeName_archer=Stealth Minion
 * UpgradeTypeName_advanced_architecture=Fancy Science


 * Here, food, archer and advanced_architecture are examples. You need to use the keywords this very techtree defines there. At runtime, the game will display any localized resource, unit, structure, upgrade, ... titles available on those localization files (make sure you have not misspelled the keys and target language / file name - check against those in Megapack). If no mathcing localizations are found or for the currently selected language there is no techtree localization, yet, the game will defaults to the source language strings.

Related discussion

 * Support for 100% translation
 * Translatable techtrees