Community localization

(Process Notes)
m (Maemo.org: Fremantle and Karma links)
 
(33 intermediate revisions not shown)
Line 1: Line 1:
-
== Terms ==
+
== Goal ==
-
* Teams: Logical team consisting of translators (eg. de, cat, id)
+
It should be easy for translators to create high quality translations of
-
* Collections: Groups of projects (eg. Maemo, GNOME, KDE)
+
* published Nokia applications
-
* Projects: Project to be translated (eg. conboy, gPodder)
+
* community provided applications
-
* Component: A specific branch/release of aproject
+
* third party commercial applications
 +
 
 +
The translation process happens in a system ("the system") described in this page. The system should provide a web based tool based on a customized version of Transifex and it needs to integrate nicely with the whole maemo.org infrastructure.
 +
 
 +
All translations produced should be submitted to the upstream projects if possible. If that is not possible (or not wanted) the translations will be stored in a maemo.org repository.
 +
 
 +
Community applications will ship Debian packages including the translations as usual. For preinstalled software the systen provides Debian packages containing only the translations. One package for each language.
 +
 
 +
The system shall support multiple projects with multiple licenses and takes care of not mixing translations release with different licenses.
 +
 
 +
== Glossary ==
 +
 
 +
* Team: Logical team consisting of translators working on a language (eg. de, ca, id)
 +
* Collection: Groups of projects (eg. Maemo, GNOME, KDE). In the system, all projedcts will go under Maemo collection.
 +
* Software Project: Project to be translated (eg. conboy, gPodder)
 +
* Translation Project: A project in the system which correlates with the software project
 +
* Developer: A person who creates a translation project. For community applications it would likely it is the same person who owns the software project.
 +
* Component: A specific branch/release of a project
* Team Owner: Person who creates a team
* Team Owner: Person who creates a team
* Coordinator: Person who manages the team
* Coordinator: Person who manages the team
-
==Process Notes==
+
==How it works==
This is how the system works in several point of views.
This is how the system works in several point of views.
=== Developer point of view ===
=== Developer point of view ===
-
==== Initial creation ====
+
==== To connect the software project with the system ====
-
* Create a project in garage, tick "[] I want to be translatable"  
+
* Create a translation project in the system, by doing one of these steps below:
-
or
+
** Create or modify a project in garage, tick "[] I want my project to be translatable by community"  
-
* Create a project somewhere else and create the project translation in the system
+
** or
-
* Give authorization to Transifex to submit translations
+
** Create a project somewhere else (eg. GitHub) and create the translation project in the system
 +
* Give authorization to system to submit translations to the origin VCS of the project
==== String freeze ====
==== 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.
+
In the component view, developer selects date for upcoming project release date and string freeze. Translators can see the dates in the calendar in dashboard.
==== Communication ====
==== Communication ====
-
* Developer can initiate mass message for subscriber of the project
+
Developer can initiate mass message for subscriber of the project eg. to communicate a new branch or string freeze break.
=== Translator point of view ===
=== Translator point of view ===
 +
Translator group consists of team owner, one or more coordinators, and one or more translators.
 +
==== Team building ====
==== Team building ====
* Team owner requests a team creation for a language
* Team owner requests a team creation for a language
-
* After team owner can add translators/coordinator/reviewers
+
* After team is created by System Administrator, owner can add translators/coordinator/reviewers
* translator joining a team, getting approval from coordinator to commit translations for all of the projects.
* translator joining a team, getting approval from coordinator to commit translations for all of the projects.
Line 37: Line 57:
* Reviewer gets notifications of a ready-to-review translation
* Reviewer gets notifications of a ready-to-review translation
* Reviewer reviews the translations,  
* 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 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
+
** If the translation is rejected then the translation state is "Rejected" and the translator gets notification
=== Coordinator ===
=== Coordinator ===
Line 47: Line 67:
There will be no special interface for coordinator to do tasks above.
There will be no special interface for coordinator to do tasks above.
-
 
-
==Other Notes==
 
-
 
-
What do we need and from whom?
 
-
 
-
===Nokia===
 
-
* 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.
 
-
 
-
 
-
===Transifex===
 
-
* Support for translation teams (Grouped by languages)
 
-
* Running (and open to Beta users) installation on maemo.transifex.net
 
-
* 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
 
-
* Maemo.org 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 maemo.org
 
-
* 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)
 
-
 
-
===Maemo.org===
 
-
* System to create debian packages out of translations for closed applications
 
-
* Support for Transifex Karma
 
-
* SSO with transfex.net
 
-
* When creating a garage project give the project an option to also register with transifex.net
 
-
* 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=
=What needs to be done=
-
There are three parties needed to realize the community localizations. Those are Noka, Transifex.net and Maemo.org. For each of them we collected a prioritized list of deliverables.
+
There are three parties needed to realize the community localizations. Those are Nokia, Transifex.net and Maemo.org. For each of them we collected a prioritized list of deliverables.
==Nokia==
==Nokia==
-
* Needs to provided the needed funds
+
* Needs to provide the funds.
 +
* Needs to provide translatable strings of all closed applications.
* 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.
* 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.
+
* Could integrate community translations into the first-start setup dialog. There are currently only official translations 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.
** 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.
* Could provide the existing translations (after sales start). Those translations could be used to bootstrap the translation system, fill the glossary, etc.
 +
 +
==Transifex.net==
 +
 +
* Needs to support translation teams (grouped by languages)
 +
* Needs to provide running installation on maemo.transifex.net. As soon as possible open for beta user. Later open for everyone.
 +
* Needs to support for roles (Owner, Coordinator, Translator, Reviewer, Developer)
 +
* Needs to provide a reviewing system
 +
* Needs to support .ts files version 3.0 which introduces multiple variants of translations for different screen sizes. Such .ts files are used in [[Open development/Maemo roadmap/Harmattan|Harmattan]].
 +
* Needs to support .po files using logical IDs used in Fremantle. Logical IDs are used by Nokia internal software like, for example, the media player.
 +
* Should be able to show a license page to translators. Translators have to agree to commit there translations using that license.
 +
* Should support access rights on collections. With that translators can get commit rights to all maemo.org projects without having to request permissions to each single project.
 +
* Should offer a way to get statistics (like number of translated strings) into the Maemo.org karma system.
 +
* Should offer a subscription/communication system. This can be used for automatic notifications and also for communications between different people.
 +
* Should let the developer set the date of the next planned release. This would help translators to finish up translations on time.
 +
* Should offer a calender with the collected release dates. This calender can be used to prioritize translation work.
 +
* Should offer a way to lock selected languages for certain projects. E.g. the German translation of Nokias media player does already officially exist - therefore it would be a waste of time if the community would translate it again.
 +
* Should provide single sign on with maemo.org
 +
* Should support project states like Started, Reviewed, Completed
 +
* Could include translator credits in the .po files. With that translators could properly be credited in the package/application.
 +
* Could offer automatic glossary lookup
 +
* Could offer translation memory
 +
* Could include translation-toolkit to catch common translation errors.
 +
* Needs to support 1:n translations. They will be used in Maemo 6 to provided strings with different length (e.g. portrait/landscape orientation). The number of variants may vary from language to language.
 +
 +
==Maemo.org==
 +
 +
* Needs to write software to create Debian packages out of translations for closed applications. (E.g. Arabic translation of Nokias media player)
 +
* Should add support for [[Karma]] generated by translation work on transifex.net
 +
* Should offer single sign on with transifex.net
 +
* Could offer new garage projects to automatically create a corresponding transifex.net project.
 +
* Could write [[Open development/Maemo roadmap/Fremantle|Maemo 5]] software to let users switch between community supported languages, because the default tool uses a hard coded list of languages.
 +
 +
[[Category:Community]]

Latest revision as of 10:19, 19 February 2010

Contents

[edit] Goal

It should be easy for translators to create high quality translations of

  • published Nokia applications
  • community provided applications
  • third party commercial applications

The translation process happens in a system ("the system") described in this page. The system should provide a web based tool based on a customized version of Transifex and it needs to integrate nicely with the whole maemo.org infrastructure.

All translations produced should be submitted to the upstream projects if possible. If that is not possible (or not wanted) the translations will be stored in a maemo.org repository.

Community applications will ship Debian packages including the translations as usual. For preinstalled software the systen provides Debian packages containing only the translations. One package for each language.

The system shall support multiple projects with multiple licenses and takes care of not mixing translations release with different licenses.

[edit] Glossary

  • Team: Logical team consisting of translators working on a language (eg. de, ca, id)
  • Collection: Groups of projects (eg. Maemo, GNOME, KDE). In the system, all projedcts will go under Maemo collection.
  • Software Project: Project to be translated (eg. conboy, gPodder)
  • Translation Project: A project in the system which correlates with the software project
  • Developer: A person who creates a translation project. For community applications it would likely it is the same person who owns the software project.
  • Component: A specific branch/release of a project
  • Team Owner: Person who creates a team
  • Coordinator: Person who manages the team

[edit] How it works

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

[edit] Developer point of view

[edit] To connect the software project with the system

  • Create a translation project in the system, by doing one of these steps below:
    • Create or modify a project in garage, tick "[] I want my project to be translatable by community"
    • or
    • Create a project somewhere else (eg. GitHub) and create the translation project in the system
  • Give authorization to system to submit translations to the origin VCS of the project

[edit] String freeze

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

[edit] Communication

Developer can initiate mass message for subscriber of the project eg. to communicate a new branch or string freeze break.

[edit] Translator point of view

Translator group consists of team owner, one or more coordinators, and one or more translators.

[edit] Team building

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

[edit] 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

[edit] Reviewer

  • 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

[edit] Coordinator

Tasks:

  • 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.

[edit] What needs to be done

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

[edit] Nokia

  • Needs to provide the funds.
  • Needs to provide translatable strings of all closed applications.
  • 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 are currently only official translations 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.

[edit] Transifex.net

  • Needs to support translation teams (grouped by languages)
  • Needs to provide running installation on maemo.transifex.net. As soon as possible open for beta user. Later open for everyone.
  • Needs to support for roles (Owner, Coordinator, Translator, Reviewer, Developer)
  • Needs to provide a reviewing system
  • Needs to support .ts files version 3.0 which introduces multiple variants of translations for different screen sizes. Such .ts files are used in Harmattan.
  • Needs to support .po files using logical IDs used in Fremantle. Logical IDs are used by Nokia internal software like, for example, the media player.
  • Should be able to show a license page to translators. Translators have to agree to commit there translations using that license.
  • Should support access rights on collections. With that translators can get commit rights to all maemo.org projects without having to request permissions to each single project.
  • Should offer a way to get statistics (like number of translated strings) into the Maemo.org karma system.
  • Should offer a subscription/communication system. This can be used for automatic notifications and also for communications between different people.
  • Should let the developer set the date of the next planned release. This would help translators to finish up translations on time.
  • Should offer a calender with the collected release dates. This calender can be used to prioritize translation work.
  • Should offer a way to lock selected languages for certain projects. E.g. the German translation of Nokias media player does already officially exist - therefore it would be a waste of time if the community would translate it again.
  • Should provide single sign on with maemo.org
  • Should support project states like Started, Reviewed, Completed
  • Could include translator credits in the .po files. With that translators could properly be credited in the package/application.
  • Could offer automatic glossary lookup
  • Could offer translation memory
  • Could include translation-toolkit to catch common translation errors.
  • Needs to support 1:n translations. They will be used in Maemo 6 to provided strings with different length (e.g. portrait/landscape orientation). The number of variants may vary from language to language.

[edit] Maemo.org

  • Needs to write software to create Debian packages out of translations for closed applications. (E.g. Arabic translation of Nokias media player)
  • Should add support for Karma generated by translation work on transifex.net
  • Should offer single sign on with transifex.net
  • Could offer new garage projects to automatically create a corresponding transifex.net project.
  • Could write Maemo 5 software to let users switch between community supported languages, because the default tool uses a hard coded list of languages.