8806
Comment:
|
11234
|
Deletions are marked like this. | Additions are marked like this. |
Line 1: | Line 1: |
'''DRAFT: this page is a work in progress. Please [:Feedback:seek further help] or check the [:TitleIndex:wiki index] for a complete page on this topic.''' | ~-[[FrontPage|Launchpad Help]] > [[Translations]] > Your project -~ |
Line 3: | Line 3: |
||<tablestyle="float:right; font-size: 0.9em; width:40%; background:#F1F1ED; margin: 0 0 1em 1em;" style="padding:0.5em;">[[TableOfContents]]|| | ||<tablestyle="float:right; font-size: 0.9em; width:40%; background:#F1F1ED; margin: 0 0 1em 1em;" style="padding:0.5em;"><<TableOfContents>>|| |
Line 11: | Line 11: |
* anyone can translate or suggest translations * translations are automatically shared between projects. Importantly, Launchpad's simple web interface makes it easy for anyone to help translate your software, while its support of the popular GNU GetText file formats makes it easy to integrate their work into your project. |
* anyone can translate and/or suggest translations * translations are easily shared between projects. |
Line 16: | Line 14: |
{i} '''Note:''' if you want to help translate Ubuntu, take a look at the [https://wiki.ubuntu.com/TranslatingUbuntu Ubuntu translations page]. | Importantly, Launchpad's simple web interface provides a friendly environment in which non-technical people can help translate your software, while its support of the popular GNU Get``Text file formats makes it easy to integrate their work into your project. '''Note:''' if you want to help translate Ubuntu, take a look at the [[https://wiki.ubuntu.com/TranslatingUbuntu|Ubuntu translations page]]. = Licensing = We ask all translators using Launchpad to licence their translations using the BSD licence. [[Translations/LicensingFAQ|Read more about this]]. |
Line 22: | Line 26: |
1. Enable translation for one of your [:Projects/SeriesMilestonesReleases#series:series] on your project's ```Change details``` page - ```https://launchpad.net/<yourproject>/+edit``` | 1. Enable translation by following the ```Change details``` link on your project's overview page and selecting ```Translations for this project are done in Launchpad```. |
Line 25: | Line 29: |
Line 27: | Line 31: |
== Concurrent translation efforts for different series == In Launchpad, you can track parallel lines of development. These might be your development trunk, a previous but still supported release or your next planned stable release. Launchpad calls these [:Projects/SeriesMilestonesReleases#series:series]. Each series of your project has its own translation effort. This is great if, for example, your community wants to start work translating a forthcoming release while independently still maintaining translation of your current release. |
|
Line 36: | Line 34: |
Launchpad uses GNU GetText's file formats to import and and export translations: | Launchpad uses GNU Get``Text's file formats to import and and export translations: |
Line 41: | Line 39: |
You can find out more about these file formats and using GNU GetText in the [http://www.gnu.org/software/gettext/manual/gettext.html GetText manual]. | |
Line 44: | Line 40: |
(!) '''Tip:''' you may also find Malcolm Tredinnick's [http://www.gnome.org/~malcolm/i18n/ Gnome internationalisation guide] useful, although some of the Gnome policies mentioned in that guide are now out of date. | You can find out more about these file formats and using GNU Get``Text in the [[http://www.gnu.org/software/gettext/manual/gettext.html|GetText manual]]. (!) '''Tip:''' you may also find Malcolm Tredinnick's [[http://www.gnome.org/~malcolm/i18n/|Gnome internationalisation guide]] useful, although some of the Gnome policies mentioned in that guide are now out of date. |
Line 48: | Line 46: |
To make your project available for translation, you must upload an archive of its .pot translation template file and any existing .po translations files. | To make your project available for translation, you must upload a .pot translation template file. This file tells Launchpad which English strings your software uses. You can also, optionally, upload any existing .po translations files; to upload a template and existing translation files together, you should create a tar archive of them. To view the current status of your project's translations imports, follow the ```See import queue``` link. == Automatic Import from Bazaar Branch == If you are hosting your code in a Launchpad Bazaar branch there is a convenient alternativ for uploading translation files. You can automaticaly synchronize your .po and .pot files with a bazaar branch. To find out more, please read the [[Translations/ImportingFromBazaarBranches | dedicated page about Importing Translations from Bazaar Branches]]. == Concurrent translation efforts for different series == In Launchpad, a series is a line of development, such as your main focus of development (or "trunk"), a previous but still supported release or your next planned stable release. Launchpad calls these [[Projects/SeriesMilestonesReleases#series|series]]. Each series of your project has its own translation effort. This is great if, for example, your community wants to start work translating a forthcoming release while still maintaining a separate translation effort for your current release. |
Line 52: | Line 65: |
Once you've uploaded these files, a member of the Launchpad team will check that they're suitable before importing them into Launchpad. Launchpad should accept future uploads automatically, although it will | Once you've uploaded these files, a member of the Launchpad team will check that they're suitable before importing them into Launchpad. Launchpad should accept subsequent uploads automatically, provided you don't change the location or name of your translation files. |
Line 59: | Line 72: |
* you have permission from the upsteam project, if that's not you. | * you have permission from the upsteam project, if that's not you * you upload templates in a tarball, so the system can see what directories you want them in; give each template its own directory. |
Line 61: | Line 75: |
There are also some common problems that can cause a template or translation file import to fail. | There are also some common problems that can cause a template or translation file import to fail. |
Line 65: | Line 79: |
* Make sure each message id - i.e. the English strings - is unique. * Use real English strings - for example ```Save the file``` - rather than identifiers, such as ```click_save_z339```. |
* Make sure each of the message IDs - i.e. the English strings - is unique. * Use real English strings - for example ```Save the file``` - rather than identifiers, such as ```save_msg_z339```. |
Line 72: | Line 86: |
* Name individual language .po files using the ISO language code. Only append the country code in the following circumstances: | * Name individual language .po files using the ISO language code, such '''fr.po''' for French. Only append the country code in the following circumstances: |
Line 74: | Line 88: |
* Brazillian Portugese: ```pt_br.po``` (Brazillian Portugese), rather than ```pt.po``` for European Portugese | * Brazillian Portugese: ```pt_br.po``` (Brazillian Portugese), as opposed to ```pt.po``` for European Portugese |
Line 77: | Line 91: |
Launchpad will email you to let you know if your import was a success or a failure. | Launchpad will email you to let you know if your import is a success or a failure. |
Line 82: | Line 96: |
There are a couple of ways that Launchpad helps you to balance making it easy for people to contribute translations to your project's translations with the need for quality control: | There are a couple of ways that Launchpad helps you to balance making it easy for people to contribute to your project's translations, while maintaining quality control: |
Line 84: | Line 98: |
* '''permission policies:''' choose one of four ready-made policies, that help you choose that right trade-off between spontaneous contributions and review * '''translations groups:''' an umbrella group of Launchpad teams, who have certain permissions to work on your project's translations |
* '''permission policies:''' choose one of four ready-made policies, each with a different balance between spontaneous contribution and review of work * '''translations groups:''' an umbrella group of Launchpad teams, who have certain permissions to work on your project's translations. |
Line 89: | Line 103: |
Depending on which permissions policy you choose, Launchpad makes it very easy for anyone to suggest translations for your project. However, to maintain the quality of your project's localisation, you should find someone you trust who can review those translations. | |
Line 90: | Line 105: |
Translation groups are a convenient way to delegate responsibility for reviewing translations. The important thing to remember about them is that they're independent of any one project. So, as a project owner, you can either choose to work with an existing translation group or create your own. | |
Line 91: | Line 107: |
Within each translation group, an individual or team is assigned to look after one or more languages. When you choose a translation group, you're entrusting the review of your project's translations to its members. Not only must you be certain that you're comfortable with the people already involved in the group but you must also be sure that you're happy with their methods of vetting new recruits. | |
Line 93: | Line 109: |
The advantage of working with an existing translation group is that they should already have established teams for several languages, as well as the community processes necessary to ensure efficient review. However, selecting a translation group is not the same as persuading people to review translations made for your project! | |
Line 94: | Line 111: |
You can use Launchpad teams to organise who works on translations | === An example translation group === |
Line 96: | Line 113: |
= Choosing a permissions policy = | Let's take a look at an example translation group, the biggest in Launchpad: [[https://translations.launchpad.net/+groups/ubuntu-translators|Ubuntu Translators]]. |
Line 98: | Line 115: |
Launchpad offers you four ready-made permissions structures to help you choose who can submit and review translations for your project: | By visiting the group's overview page, you can see which: * individual or team owns the group * individuals and teams are assigned to which languages * projects and distributions have delegated their translation review to Ubuntu Translators. === Working with an existing translation group === To choose an existing translation group, visit ```https://translations.launchpad.net/<your-project>/+changetranslators```. Although many projects find that people spontaneously contribute translations to their projects, you now need to encourage the teams within your chosen group to review translations in your project. === Creating your own translation group === If you have specific requirements for the people who review your project's translations, you may want to create your own translation group. The only way to do that is to [[https://answers.launchpad.net/rosetta/+addquestion|file a support request]] with the Launchpad administrators. <<Anchor(review-policy)>> == Choosing a permissions policy == Launchpad offers you four ready-made permissions structures. These control who can submit and review translations for your project: |
Line 101: | Line 139: |
* '''Partly restricted:''' if a particular language has an associated translation group, only members of that translation group can review and accept translation strings for that language. Anyone can suggest a translation for those language, though. For languages that aren't associated with a translation group, anyone can directly submit a translation. * '''Structured:''' similar to ``partly restricted``, except that translations are closed on languages that don't have a translation group. * '''Closed:''' only members of the appropriate translation groups can suggest or make translations. Translation is closed to everyone else. This is ideal if your project requires an agreement to transfer copyright before starting work. Set your project's permissions policy on the |
* '''Structured:''' if your project's translation group has assigned an individual or team to a particular language, only that person or members of that team can review and accept translation strings for that language. Anyone can suggest a translation for those languages, though. For languages that aren't covered by a translation group, anyone can directly submit a translation. * '''Restricted:''' similar to ``structured``, except that translations are closed on languages that don't have an individual or team assigned to it within the translation group. * '''Closed:''' only people or teams appointed in the appropriate translation group can suggest or make translations. Translation is closed to everyone else. This is ideal if your project requires an agreement to transfer copyright before starting work. |
Line 107: | Line 143: |
Set your project's permissions policy at ```https://translations.launchpad.net/<your-project>/+changetranslators```. | |
Line 108: | Line 145: |
= Exporting translations = | |
Line 109: | Line 147: |
Before anyone can translate your project, you need to upload your software's English user-interface text. | You can download a .po or .mo file for any one or all of the languages for which your project has translation efforts. |
Line 111: | Line 149: |
By default, translation is switched off for all new projects. This helps avoid wasted work. | * '''Download all translations:''' use the download link on the translations overview page for the relevant series of your project - e.g. https://translations.launchpad.net/silva * '''Download translation for one language:''' use the download link on that language's overview page - e.g. https://translations.launchpad.net/silva/trunk/+pots/silva/nl/+translate |
Line 113: | Line 152: |
To enable translations for your project, visit | = Next steps = |
Line 115: | Line 154: |
If you're ready to start importing your translation templates into Launchpad, follow our [[Translations/ImportPolicy|translations import policy]]. | |
Line 116: | Line 156: |
Use the first two paragraphs to summarise all the important points about this article. | Launchpad works with Bazaar to host, mirror and catalogue to branches of your project's code. It can even import Subversion and CVS repositories into Bazaar branches. Let's take a look at [[Code|hosting code with Launchpad]]. |
Line 118: | Line 158: |
Tell the reader if this is the information they need as soon as possible. = Instructional text = Where appropriate, use step by step instructions: '''Step 1:''' Give concise and unambiguous instructions. '''Step 2:''' Try not to state the obvious, unless you're writing for a novice user. {i} '''Note:''' Highlight important information with a note. '''Step 3:''' Use a well cropped screen shot if it will help orient the reader. Don't let the screen shot replace instructional text: not everyone can see your screen shot. Don't worry about borders or annotation for small, cropped screen shots such as this. attachment:screen-shot.png {i} '''Warning:''' If you're about to tell the reader to delete or otherwise change something that would be hard to restore, warn them. == Full screen shots == ||<tablestyle="float:right; font-size: 0.8em; width:30%; background:#F1F1ED; margin: 0 0 1em 1em;" style="padding:0.5em;">attachment:proj-announce.png|| ||<style="text-align: center;">'''Describe the screen shot here'''|| Some screen shots will be better placed to the right of your text. As they're not placed directly below the text that they support, use a border and short description. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aliquam sagittis. Aliquam eros dui, scelerisque id, consequat in, accumsan vitae, pede. Suspendisse neque ligula, scelerisque ac, mattis ut, aliquam quis, odio. Proin nunc nisi, fringilla ac, congue ac, luctus eu, lacus. Maecenas ac purus. Cras felis metus, ultricies non, euismod ac, accumsan eleifend, leo. Quisque imperdiet tempus tellus. Ut euismod, diam nec adipiscing interdum, tortor orci fringilla nisi, vel blandit erat magna at nisi. Fusce hendrerit odio non metus. Mauris nisl massa, dapibus id, feugiat quis, blandit a, quam. Integer tincidunt feugiat nunc. Curabitur iaculis egestas elit. Nam imperdiet suscipit odio. |
||<tablestyle="width: 100%;"> ~-[[Translations/Guidelines|< Make guidelines visible to local translators]] -~ ||<style="text-align: right;"> ~- [[Code|Hosting code with Launchpad >]] -~ || |
Launchpad Help > Translations > Your project
Overview
While development usually takes place in English, free software is used by people in hundreds of different languages across the globe.
Launchpad applies two of the great benefits of the open source development model to translating your software:
- anyone can translate and/or suggest translations
- translations are easily shared between projects.
Importantly, Launchpad's simple web interface provides a friendly environment in which non-technical people can help translate your software, while its support of the popular GNU GetText file formats makes it easy to integrate their work into your project.
Note: if you want to help translate Ubuntu, take a look at the Ubuntu translations page.
Licensing
We ask all translators using Launchpad to licence their translations using the BSD licence. Read more about this.
Getting started
You need to do three things before people can use Launchpad to translate your project:
Enable translation by following the Change details link on your project's overview page and selecting Translations for this project are done in Launchpad.
- Upload a translation template and any existing translation files to the series you want to translate.
- Choose a permissions policy - i.e. decide who can make what sorts of changes to your translations.
Let's take a look at those in more detail.
Preparing your software for translation
Launchpad uses GNU GetText's file formats to import and and export translations:
.pot: a template that includes the English text that you want people to translate.
.po: translations for one language in a human-readable and editable form.
.mo: a compiled binary form of a .po file.
You can find out more about these file formats and using GNU GetText in the GetText manual.
Tip: you may also find Malcolm Tredinnick's Gnome internationalisation guide useful, although some of the Gnome policies mentioned in that guide are now out of date.
Uploading translation files
To make your project available for translation, you must upload a .pot translation template file. This file tells Launchpad which English strings your software uses.
You can also, optionally, upload any existing .po translations files; to upload a template and existing translation files together, you should create a tar archive of them.
To view the current status of your project's translations imports, follow the See import queue link.
Automatic Import from Bazaar Branch
If you are hosting your code in a Launchpad Bazaar branch there is a convenient alternativ for uploading translation files. You can automaticaly synchronize your .po and .pot files with a bazaar branch. To find out more, please read the dedicated page about Importing Translations from Bazaar Branches.
Concurrent translation efforts for different series
In Launchpad, a series is a line of development, such as your main focus of development (or "trunk"), a previous but still supported release or your next planned stable release. Launchpad calls these series.
Each series of your project has its own translation effort. This is great if, for example, your community wants to start work translating a forthcoming release while still maintaining a separate translation effort for your current release.
Uploading files is easy: visit https://translations.launchpad.net/<your-project> and select the series to which you want to upload the template and translations.
Once you've uploaded these files, a member of the Launchpad team will check that they're suitable before importing them into Launchpad. Launchpad should accept subsequent uploads automatically, provided you don't change the location or name of your translation files.
Ensuring a successful import
You can help ensure your files are imported by checking that:
- there isn't already a translation effort in Launchpad for that project
- you have permission from the upsteam project, if that's not you
- you upload templates in a tarball, so the system can see what directories you want them in; give each template its own directory.
There are also some common problems that can cause a template or translation file import to fail.
For translation templates:
- Make sure each of the message IDs - i.e. the English strings - is unique.
Use real English strings - for example Save the file - rather than identifiers, such as save_msg_z339.
For translation files:
- Ensure consistent formatting: for example, if "%d" appears in an original English string, make sure it's also in each language's equivalent.
- Use consistent paths within your tarball: locate all your .po translation files under the same directory structure.
Name individual language .po files using the ISO language code, such fr.po for French. Only append the country code in the following circumstances:
variants of international English: for example, en_gb.po
Brazillian Portugese: pt_br.po (Brazillian Portugese), as opposed to pt.po for European Portugese
Chinese: traditional zh_tw.po and simplified zh_cn.po
Launchpad will email you to let you know if your import is a success or a failure.
Maintaining quality
There are a couple of ways that Launchpad helps you to balance making it easy for people to contribute to your project's translations, while maintaining quality control:
permission policies: choose one of four ready-made policies, each with a different balance between spontaneous contribution and review of work
translations groups: an umbrella group of Launchpad teams, who have certain permissions to work on your project's translations.
Translations groups
Depending on which permissions policy you choose, Launchpad makes it very easy for anyone to suggest translations for your project. However, to maintain the quality of your project's localisation, you should find someone you trust who can review those translations.
Translation groups are a convenient way to delegate responsibility for reviewing translations. The important thing to remember about them is that they're independent of any one project. So, as a project owner, you can either choose to work with an existing translation group or create your own.
Within each translation group, an individual or team is assigned to look after one or more languages. When you choose a translation group, you're entrusting the review of your project's translations to its members. Not only must you be certain that you're comfortable with the people already involved in the group but you must also be sure that you're happy with their methods of vetting new recruits.
The advantage of working with an existing translation group is that they should already have established teams for several languages, as well as the community processes necessary to ensure efficient review. However, selecting a translation group is not the same as persuading people to review translations made for your project!
An example translation group
Let's take a look at an example translation group, the biggest in Launchpad: Ubuntu Translators.
By visiting the group's overview page, you can see which:
- individual or team owns the group
- individuals and teams are assigned to which languages
- projects and distributions have delegated their translation review to Ubuntu Translators.
Working with an existing translation group
To choose an existing translation group, visit https://translations.launchpad.net/<your-project>/+changetranslators.
Although many projects find that people spontaneously contribute translations to their projects, you now need to encourage the teams within your chosen group to review translations in your project.
Creating your own translation group
If you have specific requirements for the people who review your project's translations, you may want to create your own translation group.
The only way to do that is to file a support request with the Launchpad administrators.
Choosing a permissions policy
Launchpad offers you four ready-made permissions structures. These control who can submit and review translations for your project:
Open: anyone can submit translations directly to your project in Launchpad. Great for encouraging drive-by contributions.
Structured: if your project's translation group has assigned an individual or team to a particular language, only that person or members of that team can review and accept translation strings for that language. Anyone can suggest a translation for those languages, though. For languages that aren't covered by a translation group, anyone can directly submit a translation.
Restricted: similar to structured, except that translations are closed on languages that don't have an individual or team assigned to it within the translation group.
Closed: only people or teams appointed in the appropriate translation group can suggest or make translations. Translation is closed to everyone else. This is ideal if your project requires an agreement to transfer copyright before starting work.
Set your project's permissions policy at https://translations.launchpad.net/<your-project>/+changetranslators.
Exporting translations
You can download a .po or .mo file for any one or all of the languages for which your project has translation efforts.
Download all translations: use the download link on the translations overview page for the relevant series of your project - e.g. https://translations.launchpad.net/silva
Download translation for one language: use the download link on that language's overview page - e.g. https://translations.launchpad.net/silva/trunk/+pots/silva/nl/+translate
Next steps
If you're ready to start importing your translation templates into Launchpad, follow our translations import policy.
Launchpad works with Bazaar to host, mirror and catalogue to branches of your project's code. It can even import Subversion and CVS repositories into Bazaar branches. Let's take a look at hosting code with Launchpad.