author Wuzzy
Wed, 22 Jun 2016 03:10:31 +0100
changeset 906 9879d6e10202
parent 905 fc5ec399d9cf
child 921 8fab0a7c8164
permissions -rw-r--r--
Translations: fix syntax

#summary This is a guide for new translators.

= Translations =
== Introduction ==

This is a guide for translators. In order to translate Hedgewars into another language you are going to need:

 # The latest Hedgewars localization files
 # A text editor like Notepad++, Geany, Vim, etc.
 # Qt4 Linguist. To download the Qt4 Linguist you have to download the Qt4 SDK.

== Getting the localization files ==

To get the Hedgewars localization files there are 4 possible ways.

 * *A*. Clone the Hedgewars source repository.
 * *B*. Download the latest Hedgewars source code.
 * *C*. Find the localization files in your current Hedgewars installation.
 * *D*. Download only the specific files to be translated.

The *A* is maybe the most convenient way to include the translations in the next Hedgewars release as you can easily produce a patch to provide it to the Hedgewars developers. Note that a fast internet connection is desired as you probably will clone the whole game sources. The other advantage of this way is that it can be used to translate the latest game version that is going to be released.

The *B* way is a lot like the *A* way but more limited.

The *C* is probably the fastest way and the more convenient for the translator.
However, it has the limitation that one can only translate the most recent Hedgewars release (the one currently installed) and not the version that is going to be released.

The *D* way is to download the desired files from [ here].

Above I am going to discuss the *C* way (Find the localization files in your current Hedgewars installation).

=== Finding the localization files ===

In GNU/Linux you have to look into `/path-to-Hedgewars/Data/Locale where path-to-Hedgewars` is the path to your Hedgewars installation.

In Windows you have to look into `c:\path-to-Hedgewars\share\Hedgewars\Data\Locale` where path-to-Hedgewars is the path to your Hedgewars installation.

For example in an Arch Linux box the path is `/usr/share/Hedgewars/Data/Locale`.
In a Windows 8 box the path is `C:\Program Files (x86)\Hedgewars 0.9.19\Data\Locale`.

== Translation files ==

Here is a list of the different localization files of the English language that you should use as your translation reference/template as it should be the most accurate and up to date. The file locations are relative to the top directory of the Hedgewars source code.

 * `/share/hedgewars/Data/Locale/en.txt`—This is the engine's strings
 * `/share/hedgewars/Data/Locale/hedgewars_en.ts`—This is the front-end's strings and you can edit it with Qt Linguist
 * `/share/hedgewars/Data/Locale/missions_en.txt`—This is the [Missions mission] description strings
 * `/share/hedgewars/Data/Locale/campaigns_en.txt`—This is the campaign description strings
 * `/share/hedgewars/Data/Locale/stub.lua`—This is all the Lua files (Missions, mission maps etc.) strings
 * `/share/hedgewars/Data/Locale/tips_en.xml`—This contains the tips shown in the main menu. This file is *not* in XML format!

The following files are not used by Hedgewars itself, but they contain translatable metadata about Hedgewars:

 * `/share/hedgewars/Data/misc/hedgewars.desktop`—[ Desktop Entry] file for the Hedgewars application
 * `/share/hedgewars/Data/misc/`—Desktop Entry file for the Hedgewars engine for playing savegames and demos
 * `/share/hedgewars/Data/misc/hwengine.desktop`—*Do not translate*! This file will be automatically generated from `` when building Hedgewars
 * `/share/hedgewars/Data/misc/hedgewars-mimeinfo.xml`—Description of Hedgewars file types

The map selection shows brief descriptions for mission maps. Those can be translated and you find those texts in:

 * `/share/hedgewars/Data/Maps/<map name>/desc.txt`

Replace “`<map name`>” with the name of any mission map. To translate these, add a line of the format `language code=description`. (e.g. “en=This is an example.” for English.) You must prepend commas with a backslash (so write “`\,`” for a comma). The space for mission map descriptions is short, so make sure to test your translations in the menu.

== Updating an existing translation ==

That is relatively easy. Just edit the existing file. You can edit every file with your favorite editor and the `.ts` file with Qt Linguist.

The `en.lua` file doesn’t exist. The strings are hard coded in the code.

== Creating a new translation ==

That is easy, too. Make a copy of the English file and rename it to use the initials of your language.

The `en.lua` file doesn’t exist. Use `stub.lua` instead as your template.

Here are 3 examples:

 * For French copy `en.txt` to `fr.txt`
 * For Spanish copy `en.txt` to `es.txt`
 * For Greek copy `en.txt` to `el.txt`

== Testing the translations ==

When finished you have just to start Hedgewars and choose your language from the Game Preferences, Advanced tab.

If a translation is missing then the string is going to be displayed in English.
Note that you should restart the frondend for the language changes to take effect.

== Sharing the translations ==

In order to share your translations with Hedgewars community there are 3 possible ways:

 # Give them the files and tell them where to place them. Of course this is the less convenient way but it is maybe a good approach to let other players double-check your translations
 # Talk with a Hedgewars developer in order to include it in [ DLC]
 # Talk with a Hedgewars developer in order to include it in the next Hedgewars release

== Things to have in mind ==

If you are going to make a translation for a next Hedgewars release strings may not be frozen yet and change before the release. Better ask in irc in cases like that.