Chromium opens to community translations in Launchpad

Chromium Translations in Launchpad

I’m very much thrilled to announce that Chromium, the Open Source project behind Google Chrome, the browser that is transforming the way we experience the web, is now open for community translation in Launchpad.

Chromium will be hosting its translations in Launchpad Translations, the collaborative online tool for translating Open Source projects and building community around them.

Translate Chromium in Launchpad

You can now translate Chromium online into almost any language. Using Launchpad’s simple web interface you’ll only need a Launchpad account, a web browser and good knowledge of English and the language you’ll be translating into.

Under the Hood

For the technically minded among us, here’s an overview of how everything fits together.

But first of all, I need to mention that all this would not have been possible without the fantastic work of Fabien Tassin, the legendary Ubuntu community member of Chromium and Firefox packaging fame. Big thanks also go to Evan Martin from the Chromium project, the Launchpad Translations developers and anyone else involved in making this possible.

In short, after seeing the willingness from the Chromium project to use translations infrastructure in Launchpad, Fabien single-handedly designed and implemented the machinery that performs the conversion between the Chrome translation format and Gettext, the widely-used standard format Launchpad understands.  He did not stop here, and he also devised a way to package these translations and submit them to upstream.

The following diagram illustrates the Chromium translations lifecycle:

Chromium Translations Lifecycle

Chromium Translations Lifecycle – Diagram by Fabien Tassin

The work is happening between Fabien’s server, where he maintains a local copy of the Chromium upstream branches, and Launchpad, where the PPA builds and translations happen. These are the two big blocks you see on the diagram.

The existing Chromium translations are imported into Launchpad after being converted to the gettext format. The result is then committed in a bzr branch, which is enabled with automatic translation imports to make the translations available through the web UI.

At this point translators can do their work: either complete missing translations, improve existing ones or add new languages.

This work is then committed daily to another bzr branch making use of another cool Launchpad integration feature: automatic translation exports.

The rest of the process is also fully automatic: every day, a bot in Fabien’s server fetches the translations export branch, converts back from gettext to the Chromium translation format, merges that with the upstream trunk and lands the changes in the corresponding PPA of the daily builds. For other branches the process is the same, except that it is only run when there is a new upstream release.

From there, patches with the translations are generated daily for anyone else interested in using them.

Q+A

What does community translation mean?
It means that any Open Source enthusiast will be able to translate Chromium to their language through volunteer contributions.

Why do we need community translations?
Many of the translations already available in Chromium come from private translations originated in Chrome. Until now, Chromium did not have any translation infrastructure to enable the community to localize the software, and therefore some languages were incomplete. In Launchpad you can now a) complete Chromium translations, b) improve them and c) add new languages.

How do I get started translating Chromium?
If you don’t have one already, you’ll need a Launchpad account. Once you’ve created it and selected your prefered languages, simply point your browser to https://translations.launchpad.net/chromium-browser, click on your language of choice, and that’s it, you can now start translating!

I can submit neither translations suggestions nor translations. How can I translate Chromium?
If you aren’t already logged in to Launchpad, try to log in and see if it helps. If it doesn’t, that’s probably because there is no translation team for your language yet. Launchpad Translations is built around a model of community (in the form of translation teams) and permissions (chosen by the project developer).

The permission model for Chromium is Restricted, which provides a good balance between community participation and translation quality. This means that while everyone can submit translations suggestions, only the members of the translation team will be able to accept them after review.

Have a look at the list of teams in the Launchpad Translators group. If there isn’t one, you should be able to start a new team in a matter of minutes following these simple instructions, which will allow you to start translating Chromium once the team is approved.

When I try to translate my translations are saved as suggestions. Why can’t I directly submit translations?
That’s because you are not part of the translation team for your language. You can look for your language’s translation team here and get in touch with them. If you wish, you can ask them if you can join the team or if they can review your suggestions. See the previous question for more information on translation teams, suggestions and permissions.

How do I get support for Launchpad Translations?
There are many ways to get support if you need help. Here are some of them: you can ask a question in Launchpad, you can send an e-mail to the launchpad-users mailing list or you can ask on the #launchpad IRC channel on the Freenode network. You will find more information here.

Will Chromium translations make it to Google Chrome?
Most probably not. Google Chrome and its translations are subject to different QA processes than Chromium and we’re not contemplating this possibility at this time. We are only making those strings either common or specific to Chromium available for translation.

How often will translations be updated?
It depends on the Chromium version and the operating system you are using:

  • Ubuntu, stable: if you are using the Chromium version provided in the Ubuntu package through Software Center, you will get a translations update whenever there is a new Chromium stable version released upstream.
  • Ubuntu, PPA: If you are using the Chromium daily PPA for Ubuntu, there are several options depending on which actual PPA (channel) you are using: for trunk, once a string is translated in Launchpad it takes about 2 days to be available; for the other channels (dev, beta, stable) translations are only made available whenever there is a Chromium upstream release.
  • Other: the frequency of updates in other distributions will depend on the use they make of the translations and their update policies. There are currently no Chromium builds for Windows or Mac.

This is a fully automatic process: translations exported from Launchpad are fetched daily, merged with the upstream trunk and changes are landed in the corresponding PPA of the daily builds.

How can other Operating Systems use the Chromium community translations?
The intention is that any Operating System/Linux distribution can benefit from the work from Launchpad translators, so these translations will be available to anyone interested in using them. They  can even be used for Windows and Mac.

If you are interested in using the translations for another distro, the best thing is to get in touch with Fabien (you’ll also find him as fta in the #chromium IRC channel on Freenode).

If you’ve got more questions, also feel free to ask by sending a comment to this blog post.

Happy translating!

, , ,

  • Pingback: Arslanlar Şehri » Chromium paketi çeviricilere kapısını açtı

  • Pingback: André Gondim » Ajude nas traduções do Chromium e no Ubuntu

  • http://lidian.info/ xslidian

    Hey, I have just finished translation it into Chinese Simp and fixed many existing translating errors.

    Will these strings be added into chromium.git or any other branch?
    I hope to see them in the self-compiled CrOS based on tomorrow’s repo codes. :)

    • David

      Good work!

      We’re looking at getting them committed to the trunk branch, and I’m told that hat the first batch of strings landed upstream yesterday.

      In any case, the translations are publicly available to any distribution willing to use or contribute to them. For the technical details, let me quote Fabien, who’s implemented it all:

      “You have two ways to benefit from these community efforts:

      1/ you take my patches (or the pre-patched files) for the branch you’re tracking. Everything is there:

      http://people.ubuntu.com/~fta/chromium/translations/

      it’s updated daily.

      or

      2/ you take my script, and run it yourself on your local copy of the source tree. You’ll need bzr.

      https://code.launchpad.net/~chromium-team/chromium-browser/chromium-translations-tools.head
      It’s the chromium2pot.py script, for which you’ll need to pass –import-gettext, –export-grit and possibly –create-patches (note that i’m still improving this script, even if it’s stable enough to do its job, it’s still very new so please pull that branch from time to time)

      you need to previously pull the launchpad export branch:
      https://code.launchpad.net/~chromium-team/chromium-browser/chromium-translations-exports.head
      it is a daily update of the community contributed strings in gettext format, and my script converts that to the chromium Grit format.
      (it also performs some sanity checks to prevent later build failures)

      I’m using this 2nd option for the ubuntu packages: each time i create a new source tarball (whatever branch it is, trunk/dev/beta/stable), i run this script on the unpacked source tree and create patches, that i land at build time. it means the patches never diverge as they are re-created for each source update.

      The 1st option is useful to pass the files to upstream and also for a quick review.

      Of course, we encourage your community to join in and contribute translations. The goal is that it benefits everyone, whatever the platform.”

  • AJenbo

    Is there any way to get the Chrome translations in to Chromium or are they also under a different license?

    • David

      The Chrome translations are already imported in Launchpad, translated for you to use or modify them. These are common strings. The ones left to translate are for the most part specific to Chromium.

  • John Smith

    What application was used to create that diagram? Its beautiful!

  • Pingback: More Chromium translations landed upstream « Not so random thoughts

  • http://zinmin.phpfogapp.com ThanyawZinmin

    How I can add my language to the project list.I want to add burmese strings to chrome.