Latest Posts

Changes in TranslatingWidelands

Revision Differences of Revision 32

# Translating Widelands ¶

[TOC] ¶

**Note: we will soon move our translations to Transifex. Please have a look at our [new translation project]( there. We are updating the instructions already, but DON'T TRANSLATE ON TRANSIFEX YET.** We will remove this notice and post an annoucnement once the translations on Transifex are live. ¶

We use [Transifex]( to do our translation work, which is a specialized online platform. All translation work is done in your web browser and everybody can contribute translations in any language in seconds. However, you can also download the translation files and work in an offline tool if you prefer to work that way. Transifex also offers a [Glossary]( function to help you keep consistency. ¶

## Becoming a Translator ¶

If you are new to Widelands, we recommend that you play the game first. Have a look at the tutorials and at the campaigns for all three tribes and, if a (partial) translation is already available, play both in English and in your language. Check out our [Downloads]( page to get a free copy of the game. Once you are familiar with Widelands, these are the steps you need to take: ¶

1. Visit our project on [Transifex]( You might need to get an account first. ¶
2. Look for your language on the list. If it isn't there, use the "Add language" button. ¶
3. Click on your language, then on "Add Members" and invite yourself as a translator. This step is needed so you will receive important announcement about the project via Transifex. ¶
4. Let us know, so we can add your language to the game. ¶

We recommend that you take your time to become familiar with the structure of the project, and that you browse any existing translations and the glossary. If you should need further help or wish to discuss a term, please use our [Translation & Internationalization Forum](
You should also check if there are any [special instructions for your language](

Once you have contributed a few translations,
yplease countact a re viewelcr omer coordinator, so we can add your name to the [translator credits]( ¶

## Editing Translations ¶

1. On the [Widelands Project Page](, click on your language. ¶
2. Click on the resource that you wish to translate. ¶
3. Click on "Translate now" for online translation, or "Download for use" for offline translation. You can also select "Download for translation", but this will lock the file for everybody else until you upload again. So, only choose this option if you are sure that you will be able to do the work. ¶
4. Type in your translation. You can get additional information on the bottom: ¶
* Hit "More Details" to access the developer comments. ¶
* Find similar translations in the "Summary" tab. ¶
* If a word in the English string has a dotted line underneath, check out the "Glossary" tab. ¶
* You can discuss your translation in the "Comments" tab. However, we recommend that you use our [forums]( for important issues. ¶
5. Click the "Save" button or hit the [TAB] key on your keyboard to save and move on to the next translation. [SHIFT+TAB] will save and move you back to the previous translation. Documentation for more keyboard shortcuts can be found at the gear icon on the top right. ¶
6. The search box above the list of translations has a lot of options, try them out! ¶

Transifex also offer a [Guide]( for the translation interface, which describes an alternative method of accessing your translations. ¶

## Coordinating and Reviewing Translations ¶

If you have a bigger team, you might find it useful to have somebody in charge of coordinating who will work on which file. Let us know if you wish to have a coordinator, and we will set things up for you. ¶

We don't require translations to be reviewed before we will include them in Widelands. However, if you wish to use a review process in your translation team, please let us know and nominate the reviewers for your team. We will then grant them reviewer access. Reviewed strings can only be changed by translators with reviewer power. ¶

## Working with the Glossary ¶

### Accessing the Glossary ¶

Transifex offers a [Glossary]( function, which we will be using from now on. However, we still have the old [Translation Dictionaries]( available as an archive - beware of obsolete entries and translations though! ¶

There are two ways to access the glossary on Transifex: Via the "Glossary" button on the [Project Overview](, or while translating - glossary items will be underlined with a dotted line, and the entry and a link displayed on the bottom. ¶

### Creating new Terms ¶

Only create a new term if it is a core term, e.g. a worker or building name, or a menu button. Make sure that you add a short, relevant comment to it for everybody, e.g. "Production Building - Atlanteans" or "GUI". Also make sure that the spelling is exactly as in the translation file, otherwise it won't get a dotted line in the translation interface. ¶

If the new term you're adding replaces an older, obsolete term, **DO NOT DELETE THE OLD TERM**! Other translators or languages might still make use of their older translation to help them translate the new term. Document the change with a comment, like this: ¶

Old Term | New Term ¶
------- | -------- ¶
**Foo** | **Bar** ¶
OBSOLETE. Use Bar | Category X. Formerly Foo ¶

If it's only a spelling change, e.g. from `Armour` to `Armor`, just update the spelling. ¶

Also make sure that you update the [Terminology Correspondence Table]( in our Wiki. ¶

### Creating new Translations in the Glossary ¶

Before you translate a glossary entry, please search the existing translations to check if it has already been translated. Before you add your translation to the glossary, make sure that a different term hasn't already been translated the same way. ¶

Since searching the glossary is only possible for English, we recommend that you download the glossary for your language - this will give you a *.csv* file, which you can open with any spreadsheet software like !LibreOffice Calc, Microsoft Office or Google Docs. Be aware though that you can't upload this again, so any changes will need to be done through the web interface. ¶

You can use our language's comment field for any translation specific comments, e.g. grammatical information or documenting alternative translation ideas. ¶

### Changing existing Translations in the Glossary ¶

Though it is technically a small step (edit the term), it may have huge effects on the translation already made! So please consider the following points: ¶

* Is the change important? If not, it is not worth to change the work already made and to cause new work! New work, because every occurrence of the word in all the translation files will have to be changed, and Widelands is quite big. A meticulous update of translations will be necessary to save consistency in translation. ¶
* Discuss your proposed change in the [Translation & Internationalization Forum]( ¶
* If there is a consensus to change a translation, fix **all** translations first, then update the glossary. You can also leave a comment in the glossary to document the previous translation. ¶

## How the translations are organized ¶
In some cases, you wish to find a specific string of text, either because it has not been translated yet, or you want to improve the current translation/fix a typo. The translation resources/templates are split up rather logically, so as long as you know where to look, you'll most likely find it. The following descriptions of the various templates are partially based on a [question asked on Launchpad]( ¶

Transifex Resource | Gettext Template | Description ¶
------- | -------- | -------- ¶
Widelands Main | widelands | Contains everything not covered elsewhere, including all menus, options, error messages, buttons, dialogs and other things in the game. If it is something which does not seem to fit in any of the other templates, it is most likely located here. ¶
Map & Scenario Descriptions | maps | Names and descriptions of maps which are shown when selecting which map to play. ¶
Tribes - * | tribe-* | Names and descriptions of wares, workers and buildings (including help texts) for the tribe. ¶
Tutorial * | scenario-tutorial* | The tutorials available from the main menu ¶
Atlanteans *, Barbarians *, Empire * | scenario-* | The history/dialog in the campaigns. They are numbered like the order they appear in, and identified by atl (atlantean), emp (empire) or bar (barbarian) prefix before the number. ¶
World | world | The trees, stones, creatures etc. on the map. ¶
Win Conditions | win-conditions | Description of the various types of games and messages with "you have won/lost" ¶
Texts | texts | Includes the README, credits, the hints shown when loading the game, and similar things. ¶
The Green Plateau (Single Player) | map-plateau.wmf | The story for "The green plateau", a scenario. ¶
<Scenario Name> (Multiplayer) | mp-scenario-* | Text used in the multiplayer scenarios, identifiable by name. ¶
Dummy Scenario | scenario-dummy.wmf | The placeholder map informing the player that no further maps/campaigns exists. ¶
Tribes | tribes | Texts common to all tribes. **NOTE:** These translations can't be shown in the game yet. ¶
Console Help | widelands-console | Console/Command line messages shown when "widelands --help" is called. ¶

###An example ¶
Say for instance if you are playing the second mission in the barbarian campaign and notice some typo in the story text. Then it would would make sense to search in *Barbarians 02*, since that contains all translations for the second map in the barbarian campaign. ¶

## Plural forms ¶

Our translation system (gettext) supports the use of proper plural forms. What do we mean by that? Let's take an example word - "cat". In English, we have: ¶

* "0 cats", "1 cat", "2 cats", "3 cats", ... ¶

This gives us a singular form for 1 and a plural form for all the rest, including 0. However, not all languages behave like this. For example in Scottish Gaelic, we have: ¶

* "0 cat", "1 chat", "2 chat", "3 cait", ... ¶

So, we have 4 different forms here! Therefore, gettext will present me with 4 different forms to translate for Scottish Gaelic, where there are only 2 in the English source language strings. ¶

If you aren't sure which plural form is which for your language, check out the [Localization Guide]( Let's have a look at an example on how to read the rules there. First, look for your language's code. Let's say you're translating into Czech, this will be the rule for *cs* then: ¶

*nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;* ¶

Code | Meaning ¶
------- | -------- ¶
nplurals=3 | This language has 3 plural forms ¶
(n==1) ? 0 | The first form is for the number 1 (programmers like to count from 0 instead of from 1, so it has the ID 0) ¶
: (n>=2 && n<=4) ? 1 | The second form (ID 1) is for the numbers 2 - 4 ¶
: 2; | The third form (ID 2) is for all the rest ¶

If you need help with this, please don't hesitate to ask on the [forum]( ¶

## How to deal with changes in the source language ¶

Because we're still in Alpha, it can happen that we need to break some of your translations. We keep track of changes to core terms in our [Terminology Correspondence Table]( ¶

Sometimes, it is just a matter of a fixed typo, but the translation will be removed. Sometimes, we can have pretty big changes, although we do our best to avoid them. There are three ways to deal with this: ¶

### Using Transifex; Translation Memory ¶

While translating, Transifex will show you similar strings that have been translated before. Check the "Suggestions" tab on the bottom left, below your translation. It has two interesting buttons: "Show difference with source" which will highlight the changes to the English source string, and "Use this" to copy the suggestion to your current translation, where you can edit it further as you see fit. ¶

### Using an Offline Translation Tool ¶

We highly recommend that you use an offline translation tool if you plan to translate a sizeable chunk or to work on this project continuously. The two most common tools that we can recommend are [Virtaal]( and [Poedit]( They both work fine - pick the one you prefer. Launchpad offers you to download / upload a file when you're in the translation view, so you will get the files to translate from there. ¶

These offline tools come with a translation memory, which means that they will remember all the translations that you have saved, ever. So, if a file with a slightly changed source text comes along, the tool will show you a suggestion and also mark the differences. This is also convenient for translating strings that are similar - we have a number of those in the project, especially with the tribes. The tool will help you keep consistency with your translations and also reduce the amount typing that you need to do. ¶

### Accessing older versions of your translation on Launchpad ¶

If you haven't been using an offline tool, you can still access previous versions of your translation. For this, you will need to ¶

* [browse the revision history]( of the code. ¶

* Use the "<< Newer" / "Older >>" links on the bottom to navigate to a date, then click on the name of the revision you wish to access. ¶

* Click on "browse files at revision <number>" ¶

* In the "Filename" column, click on "po" ¶

* Select the translation template and then the file with your language code, e.g. "maps" and "de.po" for the German translation of the "maps" template. ¶

* If you don't fancy reading the source code version of the file, click "download file" on the top right. You will then need to get an offline translation tool like [Virtaal]( and [Poedit]( if you haven't already installed one. ¶

## Additional Instructions for Language Teams ¶

If you want, you can add a template here for additional instruction for your language team, like this: ¶