1. Introduction

Localization is important for every user who doesn't speak English fluently. If your native language is not English, then you can help us by translating a few sentences to your native language. If you would like to help, the following steps are necessary:

A few tips if you're new to pootle:

2. Rules

There are not many, at the moment.

3. Goals

When we created the current mechanism of handling translations, we had the following goals:

4. Overview

Now let's see how all this is possible. We'll take our asciidoc documentation as an example.

First, we need to extract the translatable strings from the sources. This is an important step since this way a document is split into paragraphs and you can then later translate even a single paragraph rather then choosing between translating a 10-page-length document entirely or not. We use po4a for this purpose. It creates a template, named docs.pot, which is transferred daily to the translation server.

(For source codes we usually use the intltool-update utility to extract translatable strings.)

Right after the transfer, the po localization files are updated using msgmerge from the gettext package: this way the translators do not have to re-translate the strings which are already done.

On that machine, we use a web interface for the translation. This has several advantages:

Once a user with enough privileges pushes the translation to our git version control system, we can use it. The documentation is built daily and we pull the new translations from the dedicated repo before each build.

The output of the English build is available here. If it contains any error or warning, the testsuite will let us know by including them in the daily testsuite mail, sent to the developer mailing list. The log of the localization builds is available here.

There we use po4a again to reconstruct the original (now in some language other than English) document from the translated strings.

For source code we pull the translations right before creating a release tarball so. This has the following benefits:

The proof of concept for this mechanism is our French documentation which is more than 80 pages length and includes zero percent of manual editing by the developers (while till now we had to push the submitted - by email and other undocumented channels - translated documents manually, hoping that the newer version is better than the old was).