[sugar] New localisation workflow: Overview and status

Sayamindu Dasgupta sayamindu
Wed Oct 31 17:29:46 EDT 2007

Hi all,
As you must be knowing by now, some of us (you can find us in the
channel #olpc-pootle) have been working on having a better translation
workflow for the software (and maybe, eventually the content as well)
that is going to run on the XO.
There seems to be a bit of confusion on what is actually happening, and
this mail is to clear up any doubts. My apologies in advance if I manage
to bore someone too much, or if I somehow increase the level of
confusion :-).

** In short ** 
We will be using Pootle to manage translations, translation teams as
well as individual translators. Pootle will enable translation team
leads (and members in certain cases) to commit to dev.laptop.org
directly from the Pootle web interface.
We have tried to minimise developer involvement in this, developers
should only be aware that contents of the po/ directory might change, so
before doing a release, please remember to pull in the latest

** The tool to be used **
We want the maximum number of people to participate in translation
process. Even if someone does not have direct write access to the
translations, s/he should be able to suggest improvements. The best way
to do this is to use web based interfaces, and Pootle
(http://translate.sourceforge.net/wiki/pootle/index) seems to be the
best tool for doing this.

** The details of the Pootle setup **

We have created three groups of software, namely XO Core, XO Bundled and
XO Extras. This grouping makes it easier to gauge the level of support
for a particular language in the XO. For example, if Nepali (ne) has 95%
of XO Core translated, and 75% of XO Bundled, we can say that the level
of support for Nepali in the XO is pretty good. This will also help
resource starved l10n teams to assign translators more effectively. More
information on this is available at
We are using a somewhat complicated symlinking scheme for achieving this
grouping, and the scripts used to generate the links are undergoing all
kinds of testing atm.
And yes - we are trying to keep the filenames as consistent as
possible :-)

** Updating of POT and PO files **

One of the issues that we have been trying to figure out for the past
few days is how to ensure that translators are translating the latest
files. The generally agreed upon solution is to have a GIT hook at the
Pootle end, which rebuilds the POT files (and also the PO files) from
the sources as soon as a checkout (git pull) is completed. A checkout
happens when the administrator for a particular language clicks on
"Update from template" button from Pootle's web based interface. This
has two advantages
1. It takes away the burden of keeping translations up to date from the
2. The PO file updates (as a result of the POT file update) are expected
by the translator, since the language admin has explicitly asked for an
update, by using the update from template button. Hence the translators
do not get confused.

** Getting your project translated **

If you want your project to be translated by Pootle, the correct way to
ask would be to file a ticket in Trac. The final details on this will be
published on the Pootle installation itself.
We support non dev.laptop.org hosted projects as well (though it is not
tested), but if you already have a established translation process,
stick to that.

** Starting a language team **

Again, file a ticket. Details will be available on the Pootle
installation itself very soon.

** Current Status **

Most of the scripts, etc are ready, and we are quite satisfied with the
results of what we have seen so far using local repositories. The only
major "blocker" issue that is left to be resolved is the question of GIT
access to dev.laptop.org for the Pootle user. The most optimal solution
for this is to use the newly released support for GIT submodules (where
the po directory can be a separate submodule of a project). This
isolates the PO directory from the rest of the project, minimising the
chances of Pootle messing something other than translations :-).

However, we would like to hear from developers on this - does having a
new submodule under your project tree complicate your job ? Information
on git submodules and how to use them is available at

Questions, comments, suggestions, flames on the rest of the mail is
welcome :-)

Warm regards, and thank you for continued support and patience.

Sayamindu Dasgupta

More information about the Sugar-devel mailing list