Not logged in - Log In / Register

Revision 13 as of 2010-02-22 18:39:38

Clear message

Launchpad Translations Reporting API

This Launchpad enhancement proposal discusses extending the functionality of Launchpad Translations by developing an API which will expose the necessary interfaces to allow read access to translations-related data from Launchpad through launchpadlib for reporting purposes.

On Launchpad:

User stories

As the Ubuntu Translations Coordinator
I want to be able to report on the status of Ubuntu translations
so that the Ubuntu Translations community and other customers can benefit from accessing the Launchpad Translations data in alternative ways. These will help them assessing the status of translations at the distro level, track progress and set translation goals which will improve the translation coverage of Ubuntu. In addition to that, other functionality provided by the API can assist the Ubuntu translations coordinators in managing the Ubuntu Translations import queue and automate the currently manual processes

As an OEM Engineer
I want to be able to report on the status of Ubuntu translations
so that the

As an Ubuntu translator
I want to be able to report on the status of Ubuntu translations
so that the


Due to other higher priority development work, the Translations component has been lacking a full API for quite some time now.

The need of an API arises now from the necessity of better reporting the status of Ubuntu translations. The main benefit accessing data through launchpadlib can provide to Ubuntu is on the statistics reporting side: currently the main access point to translating Ubuntu is at This view offers statistics to all translatable packages in the main and restricted repositories, regardless of distribution. While complete, it does not provide information on how well translated Ubuntu is as a distribution. This information can be very useful to Ubuntu translators in assessing what needs to be translated and on which packages they should concentrate their work. This can also be used to track progress, set up goals, and in short, as an aid to building community around translations. In the same way, this can be useful for commercial customers to assess translation coverage when evaluating to ship Ubuntu in a given language.

As the current focus of Launchpad development is on upstream integration, and as there is no planned UI work in that area, an API appears to be the most adequate way to allow accessing the Launchpad Translations data and present it in alternative ways to suit the stakeholders' needs.


(David: as the drafter of this proposal, I'm regularly in touch with all of the stakeholders)


The new behaviour must provide a way to access translations data from Launchpad, either in read (or depending on the value) or write mode through launchpadlib, without the need for an admin to query the database directly.

It must not provide any additional functionality or a way to circumvent any security privileges built in the layers above (e.g. Launchpad UI)


The API can be initially subdivided in several areas, which will be exposed separately below.


This part of the API focuses on exposing read-only data for the purpose of reporting on the status of translations. Each subsection treats a separate aspect of reporting, with DATA lists as the proposals for the data to be exposed.


Retrieving the list of all languages available in Launchpad. For each language the following data would be required:


It would be also desirable to have the ability of querying a single language as well.

PO Templates

Retrieving the list of all templates available for a series in Launchpad. For each template the following data would be required:


It would also be nice to be able to query a template from a series, based on the Launchpad template name.

PO Files

Retrieving the list of all PO files for a template in a series.



The idea behind this workflow is simply to use a gradual approach, which will be easier to get right and get landed, without ending up with a too large a branch to review or follow.


Although the intention is to propose a full API, the two main success criteria are the implementation of API functions for reporting and the imports queue, so we will know that we are done when we can report on the status of Ubuntu translations at a distro level (i.e. on a given set of packages, for all Launchpad languages) by having sourced the data trough launchpadlib.

The success can be measured in how seamlessly this data can be obtained and in whether all requirements in terms of exposed data have been implemented.