Latest revision |
Your text |
Line 1: |
Line 1: |
- | == Goal == | + | ==Process Notes== |
- | 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.
| + | ==Other Notes== |
| | | |
- | 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.
| + | What do we need and from whom? |
| | | |
- | 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.
| + | ===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. |
| | | |
- | The system shall support multiple projects with multiple licenses and takes care of not mixing translations release with different licenses.
| |
| | | |
- | == Glossary == | + | ===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 |
| | | |
- | * Team: Logical team consisting of translators working on a language (eg. de, ca, id)
| + | ===Maemo.org=== |
- | * Collection: Groups of projects (eg. Maemo, GNOME, KDE). In the system, all projedcts will go under Maemo collection.
| + | * System to create debian packages out of translations for closed applications |
- | * Software Project: Project to be translated (eg. conboy, gPodder)
| + | * Support for Transifex Karma |
- | * Translation Project: A project in the system which correlates with the software project
| + | * SSO with transfex.net |
- | * Developer: A person who creates a translation project. For community applications it would likely it is the same person who owns the software project.
| + | * When creating a garage project give the project an option to also register with transifex.net |
- | * Component: A specific branch/release of a project
| + | * Software to let the user choose a community language. Must set environment variables, etc. Or include it directly into the package. |
- | * Team Owner: Person who creates a team
| + | |
- | * Coordinator: Person who manages the team
| + | |
- | | + | |
- | ==How it works== | + | |
- | | + | |
- | This is how the system works in several point of views.
| + | |
- | === Developer point of view ===
| + | |
- | ==== 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
| + | |
- | | + | |
- | ==== 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.
| + | |
- | | + | |
- | ==== Communication ====
| + | |
- | 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 group consists of team owner, one or more coordinators, and one or more translators.
| + | |
- | | + | |
- | ==== 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.
| + | |
- | | + | |
- | ==== 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 ===
| + | |
- | * 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
| + | |
- | | + | |
- | === 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.
| + | |
- | | + | |
- | =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.
| + | |
- | | + | |
- | ==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.
| + | |
- | | + | |
- | ==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]]
| + | |