Editing MG/Translations
Jump to navigation
Jump to search
Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.
The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.
Latest revision | Your text | ||
Line 1: | Line 1: | ||
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. | 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 <tt>english.lng</tt>. | |
− | + | The latest version of <tt>english.lng</tt> is usually [http://megaglest.svn.sourceforge.net/viewvc/megaglest/trunk/data/glest_game/data/lang/english.lng?revision=HEAD the one in trunk]. There could theoretically be newer ones in (other) [http://megaglest.svn.sourceforge.net/viewvc/megaglest/branches/ 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== | |
− | + | Now to update an existing translation, you need to get the latest copy of the existing translation file, which is usually [http://megaglest.svn.sourceforge.net/viewvc/megaglest/trunk/data/glest_game/data/lang/?revision=HEAD the one in trunk], too. | |
− | |||
− | + | For example, to update for example <tt>galician.lng</tt>, based on <tt>english.lng</tt>, 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 [http://notepad-plus-plus.org/ Notepad++]; Note that Microsoft's Notepad will '''not''' work) and the UTF-8 encoding. | |
+ | * Remove any lines from <tt>galician.lng</tt> which contain keywords which are not contained in <tt>english.lng</tt>. | ||
+ | * Add any lines to <tt>galician.lng</tt> which contain keywords which are contained in <tt>english.lng</tt> (but have not been contained in <tt>galician.lng</tt> 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 <tt>\n</tt> (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 [http://paste.megaglest.org paste.megaglest.org] and paste the resulting internet address on the MegaGlest forums as a new translation. Alternatively, send the translation file to [http://megaglest.org/contact.html 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== | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | 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):<br /><tt>''techtree''_''language''.lng</tt>.<br />Example: <tt>megapack_german.lng</tt> | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | * Edit the file. Supported translatable items are currently: resource, unit and upgrade names. So In each language file add:<br /><tt>ResourceTypeName_''food''=Yummies</tt><br /><tt>UnitTypeName_''archer''=Stealth Minion</tt><br /><tt>UpgradeTypeName_''advanced_architecture''=Fancy Science</tt><br />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 [https://lists.sourceforge.net/lists/listinfo/megaglest-translations 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== | ==See Also== | ||
*[[MegaGlest]] | *[[MegaGlest]] | ||
*[[MG/FAQ|Frequently Asked Questions]] | *[[MG/FAQ|Frequently Asked Questions]] | ||
− | *[[MG/ | + | *[[MG/TranslationsMaintenance|TranslationsMaintenance]] |
*[[Scenarios]] | *[[Scenarios]] | ||
[[Category:MG]] | [[Category:MG]] |