Community localization



  • Teams: Logical team consisting of translators (eg. de, cat, id)
  • Collections: Groups of projects (eg. Maemo, GNOME, KDE)
  • Projects: Project to be translated (eg. conboy, gPodder)
  • Component: A specific branch/release of aproject
  • Team Owner: Person who creates a team
  • Coordinator: Person who manages the team

Process Notes

This is how the system works in several point of views.

Developer point of view

Initial creation

  • Create a project in garage, tick "[] I want to be translatable"


  • Create a project somewhere else and create the project translation in the system
  • Give authorization to Transifex to submit translations

String freeze

In the component view, developer selects date for upcoming release date and string freeze. Translators can see the dates in the calendar in dashboard.


  • Developer can initiate mass message for subscriber of the project

Translator point of view

Team building

  • Team owner requests a team creation for a language
  • After team owner can add translators/coordinator/reviewers
  • translator joining a team, getting approval from coordinator to commit translations for all of the projects.

Doing the translation

  • Go to project's component
  • Translator select the component she wants to translate, and this effectively lock the translation file
  • When translator thinks she is done with the translation, the review request is sent, the lock is released


  • Reviewer gets notifications of a ready-to-review translation
  • Reviewer reviews the translations,
 * If the translation is accepted, the state of the translation is now "Approved" and pushed to upstream (or exported as packages)
 * If the translation is rejected then the translation state is "Rejected" and the translator gets notification



  • Prioritizing projects
  • Adding/removing translators
  • Monitoring that the translation process is moving and act accordingly

There will be no special interface for coordinator to do tasks above.

Other Notes

What do we need and from whom?


  • Money
  • Integration of community translations into the official language selection dialog. Once a new language is installed it should be shown in the settings.
  • On first start: Give a possibillity to install/download maemo community translations.
  • If not: Show a message to tell users that there are community translations and where they can be found.
  • Get existing translations to bootstrap system, create glossary etc.


  • Support for translation teams (Grouped by languages)
  • Running (and open to Beta users) installation on
  • Support for roles (Owner, Coordinator, Translator, Reviewer, Developer
  • Reviewing system
  • Support for po files using logical ids (only for closed software)
  • Page to sign the lincence of the project
  • Support for access rights on collections
  • Karma support
  • subscription/communication meachanims for getting notifcations about changes.
  • Select date for upcoming release. Create calender to show projects close to a release
  • Abillitiy to lock specific languages for certain projects. E.g. Mediaplayer/German
  • SSO with
  • Support for project states: Started, Reviewd, Complete
  • Translator credits in po files
  • Automiatic glossary lookup
  • Translation memory
  • support for translation-toolkit to catch translation erros
  • Support for 1:n translations because of translation variants (Harmattan)

  • System to create debian packages out of translations for closed applications
  • Support for Transifex Karma
  • SSO with
  • When creating a garage project give the project an option to also register with
  • Software to let the user choose a community language. Must set environment variables, etc. Or include it directly into the package.

What needs to be done

There are three parties needed to realize the community localizations. Those are Noka, and For each of them we collected a prioritized list of deliverables.


  • Needs to provided the needed funds
  • Should open the official language selection dialog in order to make it display not only official translations but also community translations. The language selection dialog in Fremantle uses a hard coded list. This should be changed in Harmattan. Instead of a hard coded list it should display all installed translations.
  • Could integrate community translations into the first-start setup dialog. There currently only official translations are selectable. There could be an option to let the user download and install community translations. If needed of course with a disclaimer.
    • If the above is too intrusive the user could get a message telling him that there are community translations available for download.
  • Could provide the existing translations (after sales start). Those translations could be used to bootstrap the translation system, fill the glossary, etc.