MG/Translations

From MegaGlest
Jump to navigation Jump to search

Some of the existing translations are not very well maintained and, so far, only a couple languages are supported, so keeping files up to date or adding new translations helps the MegaGlest community a great deal.

How translations work

There are several language files for various languages and purposes. These language files contain several lines which always take the same pattern:

keyword=translation string

These keywords (also dubbed 'translation keys') are referenced in the source code of the game. Depending on the language the user has chosen, when these keywords are met during execution of the game, the translation string which matches this keyword is taken from the language file and printed on screen.

Sometimes the game developers and modders need to add or remove new translation keys (strings) to the language files. Whenever this happens, they update the english.lng file to make this work for English (but not for other languages). When they do, they either remove lines which are no longer referenced in the game (and thus no longer needed) or add new lines (for newly introduced text) to english.lng. Sometimes, but not usually, they also add any newly added lines to the other translation files (using the english language translation as a source). So the reference file, the file all translators should check to make sure they contain the right keywords, is english.lng.

The latest version of english.lng is usually the one in trunk. There could theoretically be newer ones in (other) branches of the subversion source code repository but that's rather unlikely and if this should happen the developers should be telling you (feel free to check, though).

How to provide translations

MegaGlest's translations are now managed on Transifex, a website allowing for easy translation of a software such as MegaGlest, all from within your web browser.

Getting started with Transifex

Start by signing up at Transifex - that's a quick, one-time process. All accounts are free, you only pay when you host a commercial translation with them, but never as a translator.

Click on I am a translator, then head over to the MegaGlest project on Transifex.

Next to the "languages" heading, click on request language. Now click on the language selection box and look for the language you want to translate MegaGlest _to_ (from English). Review and accept the contributor license and start translating right away.

Later, when the MegaGlest developers add new translation keys, they will automatically show up on Transifex, so translation is now a continuous work. Of course, translations still matter most for releases, so we'll keep notifying you on the translation mailing list when it's time to get translations into shape.

The old process (now deprecated)

To update an existing translation, you need to get the latest copy of the existing translation file, which is usually the one in trunk, too.

For example, to update for example galician.lng, based on english.lng, you need to:

  • Make sure you use a text editor which supports Unix style line endings (such as every editor on Linux does and most editors on Windows — such as Notepad++; Note that Microsoft's Notepad will not work) and the UTF-8 encoding.
  • Remove any lines from galician.lng which contain keywords which are not contained in english.lng.
  • Add any lines to galician.lng which contain keywords which are contained in english.lng (but have not been contained in galician.lng so far).
  • Replace the english translation strings by a galician translation. Try to use one which is not or just a little bit longer than the english string because the text will need to fit into a given place on screen.
  • Save the file using UTF-8 character encoding. In case this option is provided, please do not store the byte-order mark (BOM).
  • Run the game with your new translations and see whether your new translations really make sense where they are used. It can easily happen that you add a translation which does not make sense in the given context. Also make sure that your translation really fits well on screen with the default font size. You may add \n (backslash and 'n') to your translation strings to wrap the text across multiple lines. But make sure what this does not break the looks either - you should test this at a 800x600 resolution.
  • Make a final check to verify it's all ok.
  • Paste your new/updated translation on paste.megaglest.org and paste the resulting internet address on the MegaGlest forums as a new translation. Alternatively, send the translation file to the MegaGlest general contact e-mail address or one of the main developers (by e-mail). Please provide information on how you would like to be credited in the documentation for the next release - credit is usually recorded either by their first name, full name or nickname.

Translating techtrees

Please note: Techtree translations for the Megapack (MegaGlest's default techtree) are not currently accepted. You are welcome to translate any other techtrees, though.

Some techtree related information which displays in the graphical user interface, such as unit or structure names or unit/attack properties, can now (starting r3285) be translated, too. Here is how it works:

  • For a given techtree (lets assume Megapack) create a subdirectory named lang within the megapack (techtree) directory, i.e. techtrees/megapack/lang/ (skip if it already exists)
  • In this new directory, create a new language file using this naming convention (skip if it already exists):
    techtree_language.lng.
    Example: megapack_german.lng
  • Edit the file. Supported translatable items are currently: resource, unit and upgrade names. So In each language file add:
    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. In game the discovered translated strings will display if the user is using a supported language, otherwise it defaults to original behavior.

Keep your translation up to date

After you completed your translation, please make sure you also subscribe to the megaglest-translations mailing list. This mailing list is used to notify translators that we will soon release a new version, so they have a chance to ensure that their translation is complete. Note that during development it will happen that new translation keys are added, and possibly old ones removed, so it is very likely that changes need to be made to existing translations to make them complete for the next release.

See Also