Translations > Upstream


This wiki space is aimed at both Upstream projects and Ubuntu translators to share the knowledge on translations, maintain a good relationship and an efficient workflow we both can benefit from.

It is important for us to make our large contributor base of translators aware of the upstream translation projects Ubuntu is based on, and let them know how they can contribute back and collaborate with the original projects with their translations.

As an upstream

How is Ubuntu translated

Ubuntu is translated in Launchpad. Translations from the upstream projects are imported and reused in Ubuntu. In addition to that, we offer a unified online translation interface which allows completing and fixing translations throughout a distro's lifecycle. This includes both the original strings and those added or modified in Ubuntu through patches. In order to achieve this we provide translation updates post-release through language packs.

Due to our infrastructure and a design decision to use a unified approach based on the standard gettext format, we can generally only import and export PO and MO files, so for example neither documentation files (man pages, docbook, etc.) nor Qt translation files (.ts, .rm) are translatable in Launchpad.

(i) You'll find more detailed info on the translations lifecycle page.

The Ubuntu translators, organized in several translation teams, make all this possible. We put a lot of consideration on the quality of translations, and we offer extensive documentation on guidelines, best practices and policies to encourage the teams to work effectively and collaborate with upstream. In addition to this, we've made it a policy to not allow Open teams to translate Ubuntu, so that upstream translations are not modified for no good reason.

(i) It is also a policy to prefer upstream translations unless explicitly overriden.

That said, we acknowledge the fact that there might be duplication of work for those translation teams which do not work closely with upstream, along with the fact that translations are not sent back automatically. It is for this reason that the Launchpad team is actively working towards a better upstream integration, starting with more frequent syncs from upstream and direct import from code branches. We also encourage and rely on Ubuntu translation teams to forward their work and collaborate with upstreams.

Modifications for a better Ubuntu integration

In order for translations to be imported to Launchpad and in order to direct translators to the translations page to start contributing straight away, we make two changes to the application at the packaging level:

  • Creation of a POT file on build - We require the .deb package to produce a .pot translation template during the build, which will be imported into Launchpad and be used to expose translations for translators to do their work.

  • Addition of the Launchpad integration library - We add some functionality to display some additional entries to the Help menu, to direct contributors to Launchpad to report bugs, submit translations and get help.

How to get Ubuntu translations

We encourage Ubuntu translators to contribute back through their translation teams. There are many Ubuntu translators who are also involved in a number of upstream translation projects, so you might find that someone has done a translation in Launchpad, has exported it and committed or sent it to your project already.

That is naturally the ideal case, but there are many other translators which might not possess the technical knowledge to do this, or might not be involved in a particular upstream project. In these cases, you as a developer or maintainer can export the translations from Launchpad and integrate them into your project.

You can always find the translations for the latest release of Ubuntu at, where you'll be able to export your software's translations by navigating to a location such as<ubuntu-release>/+source/<yourapp>/+pots/<yourapp-template>/+export

(i) Note that you'll need a Launchpad account with a valid e-mail for that, as the export will be sent to you as a link. You can either create one or ask the Ubuntu maintainer for your software to request the export.

There you'll be able to get an export of translations for all languages at once, but you can always download single PO files or even only the strings changed or completed in Launchpad. If you look at the translation statistics of your software, you'll see they are color coded to help differentiating upstream from downstream translations. This might help you decide whether you want to request a full export or simply download the individual translations only present in Launchpad.

All translations imported from sources external to Launchpad are owned by the translator that created them. In general, these translations are licensed under the same terms as the software for which they are a translation.

All translations in Launchpad are the work of the translator that created them. These translations are made available to Canonical and in turn to you under the BSD license (revised, without advertising clause). We require this so that other projects can use these translations as sources for their own translations, without suffering licensing incompatibilities. See the Translations Licensing FAQ for details.

If you've got questions

If you've got questions or need help with translations, feel free to contact the Translations team in whichever way you prefer, and we'll be more than happy to help.

As an Ubuntu translator

What is upstream?

When we talk about upstream we refer to the original projects from which Ubuntu imports code and translations. In Ubuntu's aim to offer the best-of-breed applications, we provide an operating system in which we integrate the best applications the free software world has to offer. Many of these applications exist as separate projects independently of Ubuntu, and we collaborate with them to include them in the OS. So in an analogy to water flow, these original projects are what we call the Upstream for Ubuntu as their features and improvements flow downstream to Ubuntu.

In the particular case of translations, they are imported too, so that we can reuse the great work other translators have already done upstream. You'll recognise upstream translations in Launchpad by being marked generally in green in the statistics.

Why is it necessary to contribute back to upstream?

It is currently not possible to send translations done in Launchpad automatically back to upstream. For this reason, if translation is only done in Launchpad, these contributions do not flow back to the original project and thus other distributions will not be able to benefit from the translations done in Ubuntu.

We want to ensure that as a consumers of the awesome upstream translations we can give back the equally awesome contributions of the large Ubuntu translations community. We thus encourage and rely on the Ubuntu translation teams to fill the gap and send their new translations and fixes to upstreams.

General contribution guidelines

As an Ubuntu translator, if you translate in Launchpad, you can contribute to upstream in 3 simple steps:

  1. Download translations from Launchpad

  2. Find out where upstream is

    • In some cases it is obvious where the upstream is (, Mozilla, etc.)

    • In other cases you'll find the information in the exported translation's header
    • The information on some of the main Ubuntu upstreams in this namespace can be helpful with that.
    • In case of doubt, simply ask at the Ubuntu translators mailing list.

  3. Send the translation upstream

    • Once you've located the upstream project, simply follow the guidelines on their project page to submit translations, or simply get in touch with the relevant upstream translation team to help you with that.
    • The information on how to submit translations for some of the main Ubuntu upstreams in this namespace can be helpful with that.

Community resources


Translations/Upstream (last edited 2010-12-04 07:27:56 by dpm)