Diff for "FeatureHighlights/SoftwareTranslation"

Not logged in - Log In / Register

Differences between revisions 4 and 5
Revision 4 as of 2007-03-26 12:37:37
Size: 6888
Editor: 81
Comment: link to next page
Revision 5 as of 2007-03-27 11:26:29
Size: 6811
Editor: 217
Comment:
Deletions are marked like this. Additions are marked like this.
Line 3: Line 3:
Launchpad has unique infrastructure to support the translation of free software into many languages. It enables translation communities to form and be organised (leveraging the [:ReviewersGuide/TeamManagement:Team Management] capabilities described earlier) and allows you to keep track of the translations of multiple versions of your software into multiple languages. Launchpad has unique infrastructure to support the translation of free software into many languages. It enables translation communities to form and organise themselves, leveraging the [:ReviewersGuide/TeamManagement:Team Management] capabilities described earlier, and allows you to keep track of the translations of multiple versions of your software into multiple languages.
Line 5: Line 5:
This translation infrastructure is all web-based, so new translators can join very easily, without any special tools or having to be able to commit to the codebase of the project. If you have more advanced translators on your team, however, they can still use specialised tools to work on the standard translation files that Rosetta produces, and they can upload those directly to Launchpad, avoiding the web interface entirely. This translation infrastructure is all web-based, so new translators can join very easily, without any special tools or needing to commit to the project's codebase. However, Rosetta imports and exports standard translation files, enabling more advanced translators to use their preferred tools and avoid the web interface entirely.
Line 11: Line 11:
Each piece of software that can be translated results in one or more "translation templates". You can see the extent to which a particular template has been translated very easily. For example, here is the status of the Gnome Terminal translation in Ubuntu's 6.06 LTS release: When software is ready to be translated, it results in one or more "translation templates". You can see the extent to which a particular template has been translated very easily. For example, here is the status of the Gnome Terminal translation in Ubuntu's 6.06 LTS release:
Line 19: Line 19:
You can immediately tell which languages are well-translated (green) and which are not. The purple bars represent new translations, added to this system since the package itself was built. It's also possible to see when last someone added to the translation of this template in any particular language, and who that person was. You can immediately tell which languages are well-translated (green) and which are not. The purple bars represent new translations, added to this system since the package itself was built. It's also possible to see when someone last added to the translation of this template in any particular language, and who that person was.
Line 27: Line 27:
Notice that the translator has included the relevant HTML display markup. The translation is substituted in the interface for the English string in its entirety. Some more sophisticated translations can contain multiple lines of text, and placeholders for values that come from the application itself. And of course translations sometimes need to deal with plurals - the difference between "there are 9 cars on the lot" and "there is 1 car on the lot". It takes time and skill to become a very good translator. For this reason, it is possible to have a core group of translators who are trusted who can modify any translation, and have everyone else only able to make suggestions - until they are trusted enough to be part of the core team. Notice that the translator has included the relevant HTML display markup. The translation is substituted in the interface for the English string in its entirety. Some more sophisticated translations can contain multiple lines of text, and placeholders for values that come from the application itself. And of course, translations sometimes need to deal with plurals - the difference between "there are 9 cars on the lot" and "there is 1 car on the lot".

It takes time and skill to become a very good translator. For this reason, it is possible to have a core group of trusted translators who can modify any translation. Everyone else is limited to making suggestions, until they are trusted enough to be part of the core team.
Line 31: Line 33:
It is often the case that you want translators to be able to work on a stable version of the project code, and at the same time get a head start on the development version. Launchpad supports this explicitly. Each Series (we described those earlier - major versions of a project, such as 1.1.x, 1.2.x and trunk) can have its own set of translation files. When a translation is added to one, it is immediately suggested to the other if the English string is unchanged. In that way, you can have some translators focused on expanding the translation coverage of your stable release while others work on the cutting edge. Often, you may want translators to be able to work on a stable version of the project code, and at the same time get a head start on the development version. Launchpad supports this explicitly. Each Series (we described those earlier - major versions of a project, such as 1.1.x, 1.2.x and trunk) can have its own set of translation files. When a translation is added to a Series, it is immediately suggested to the other if the original English string is unchanged.
Line 33: Line 35:
For example, here you can see the work being done to translate WengoPhone. By default, the "trunk" is shown because the WengoPhone developers have identified that as the most important series to be translated at the time of writing. But it is also possible to translate WengoPhone 2.1: This mean that some translators can focus on expanding the translation coverage of your stable release, while others work on the cutting edge.

For example, here you can see the work being done to translate WengoPhone. By default, the "trunk" is shown because the WengoPhone developers have identified that as the most important series to be translated, at the time of writing. But it is also possible to translate WengoPhone 2.1:
Line 44: Line 48:
Perhaps most importantly, Launchpad makes it easy to organise your translation community. Here is a list of the translators and translation teams that work on Ubuntu (of course other people can contribute translations, but these are the formal teams who have the most direct access): Perhaps most importantly, Launchpad makes it easy to organise your translation community. Here is a list of the translators and translation teams that work on Ubuntu. Of course, other people can contribute translations, but these are the formal teams who have the most direct access.
Line 52: Line 56:
Note that each "translator" in this case is a team. They can also be individuals, but in our experience it is useful to create teams as soon as you have more than one person who is judged competent to help with a particular language. One lesson we learned the hard way is that it is better to set high standards for team membership than to invite too many people into the team before they have proven their experience and competence. Not only is it a question of speaking the language fluently, but its also important to know the conventions of that application, and the details of such things as plural forms and data substitutions. There are review systems in place now that allow you to invite people to contribute translations, which are then held for review by the official translation team. This way you can mentor translators to improve, and ultimately accept them into the editorial community with permission to change any translation. Note that each "translator" in this case is a team. They can also be individuals, but in our experience it is useful to create teams as soon as you have more than one person who is judged competent to help with a particular language.

One lesson that we learned the hard way is that it is better to set high standards for team membership than to invite too many people into the team before they have proven their experience and competence. Not only is it a question of speaking the language fluently, but it's also important to know the conventions of that application, and the details of such things as plural forms and data substitutions. To deal with these issues, we have implemented review systems that allow you to invite people to contribute translations, which are then held for review by the official translation team. This way you can mentor translators to improve, and ultimately accept them into the editorial community with permission to change any translation.
Line 56: Line 62:
You can determine the restrictiveness of your translation policy. There are three options. First, you can throw the doors open, and allow anybody to fix any translation in any language. Second, you can say that languages where a translator has been appointed can only be modified by that translator, but other languages are completely open. And third, you can say that translations can only be edited by an appointed translator, and if no translator has been appointed for a given language, all suggestions will just queue up for review until such time as one is finally appointed for that language. You can determine the restrictiveness of your translation policy. There are three options:
Line 58: Line 64:
 * '''Completely open:''' anybody can fix any translation in any language.
 * '''Partly restricted:''' for languages where a specific translator has been appointed, only they can made translations. For other languages, anyone can make a translation.
 * '''Restricted:''' appointed translators can work on their specific language. For languages where a translator hasn't been appointed, anyone can suggest translations and they will be queued for review until a translator is appointed for that language.

Translating your software

Launchpad has unique infrastructure to support the translation of free software into many languages. It enables translation communities to form and organise themselves, leveraging the [:ReviewersGuide/TeamManagement:Team Management] capabilities described earlier, and allows you to keep track of the translations of multiple versions of your software into multiple languages.

This translation infrastructure is all web-based, so new translators can join very easily, without any special tools or needing to commit to the project's codebase. However, Rosetta imports and exports standard translation files, enabling more advanced translators to use their preferred tools and avoid the web interface entirely.

Ubuntu uses Launchpad to manage the translation of several hundred packages into many different languages, for each successive release. In particular, once a release has been made, Ubuntu translators can continue to improve translations, which are delivered to users in the form of updated language packs every few weeks.

Keeping track of progress

When software is ready to be translated, it results in one or more "translation templates". You can see the extent to which a particular template has been translated very easily. For example, here is the status of the Gnome Terminal translation in Ubuntu's 6.06 LTS release:

And part of that page, at the time of writing looked like this:

attachment:translationstatus.png

You can immediately tell which languages are well-translated (green) and which are not. The purple bars represent new translations, added to this system since the package itself was built. It's also possible to see when someone last added to the translation of this template in any particular language, and who that person was.

Contributing translations

It's very easy for people to contribute new translations. Each translation is presented as a web form, with the English and current translation as well as suggestions based on other known translations prominently displayed. Here's an example of the form to translate a single message in an application (Gnome Terminal again):

  • attachment:singletranslation.png

Notice that the translator has included the relevant HTML display markup. The translation is substituted in the interface for the English string in its entirety. Some more sophisticated translations can contain multiple lines of text, and placeholders for values that come from the application itself. And of course, translations sometimes need to deal with plurals - the difference between "there are 9 cars on the lot" and "there is 1 car on the lot".

It takes time and skill to become a very good translator. For this reason, it is possible to have a core group of trusted translators who can modify any translation. Everyone else is limited to making suggestions, until they are trusted enough to be part of the core team.

Separating translations for different versions

Often, you may want translators to be able to work on a stable version of the project code, and at the same time get a head start on the development version. Launchpad supports this explicitly. Each Series (we described those earlier - major versions of a project, such as 1.1.x, 1.2.x and trunk) can have its own set of translation files. When a translation is added to a Series, it is immediately suggested to the other if the original English string is unchanged.

This mean that some translators can focus on expanding the translation coverage of your stable release, while others work on the cutting edge.

For example, here you can see the work being done to translate WengoPhone. By default, the "trunk" is shown because the WengoPhone developers have identified that as the most important series to be translated, at the time of writing. But it is also possible to translate WengoPhone 2.1:

And here's a snapshot of the relevant part of the page, at the time of writing:

attachment:seriestranslations.png

Translation teams

Perhaps most importantly, Launchpad makes it easy to organise your translation community. Here is a list of the translators and translation teams that work on Ubuntu. Of course, other people can contribute translations, but these are the formal teams who have the most direct access.

At the time of translation, the list started with these teams:

attachment:ubuntutranslators.png

Note that each "translator" in this case is a team. They can also be individuals, but in our experience it is useful to create teams as soon as you have more than one person who is judged competent to help with a particular language.

One lesson that we learned the hard way is that it is better to set high standards for team membership than to invite too many people into the team before they have proven their experience and competence. Not only is it a question of speaking the language fluently, but it's also important to know the conventions of that application, and the details of such things as plural forms and data substitutions. To deal with these issues, we have implemented review systems that allow you to invite people to contribute translations, which are then held for review by the official translation team. This way you can mentor translators to improve, and ultimately accept them into the editorial community with permission to change any translation.

Levels of permission

You can determine the restrictiveness of your translation policy. There are three options:

  • Completely open: anybody can fix any translation in any language.

  • Partly restricted: for languages where a specific translator has been appointed, only they can made translations. For other languages, anyone can make a translation.

  • Restricted: appointed translators can work on their specific language. For languages where a translator hasn't been appointed, anyone can suggest translations and they will be queued for review until a translator is appointed for that language.

In summary, Launchpad can be a useful tool to organise the people in your community who are willing to help make your software accessible to people in their own native language. You do still need to mentor people to ensure the quality of the translations, but Launchpad greatly reduces the barriers to participation and gives you a framework to build a strong translation effort.

The next step on our tour looks at Launchpad's [:ReviewersGuide/BlueprintReleasePlanning:feature planning and release management] capabilities.

FeatureHighlights/SoftwareTranslation (last edited 2008-06-17 14:21:19 by localhost)