Diff for "Translations/YourProject/ImportPolicy"

Not logged in - Log In / Register

Differences between revisions 7 and 16 (spanning 9 versions)
Revision 7 as of 2007-07-31 08:25:12
Size: 7409
Editor: adsl-236-193
Comment: Obsolete Rosetta name
Revision 16 as of 2009-06-24 16:13:15
Size: 6837
Editor: 92-237-59-186
Comment:
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
## page was renamed from RosettaImportPolicy
## page was renamed from RosettaNewImportPolicy
== Introduction ==
~-[[FrontPage|Launchpad Help]] > [[Translations]] > Import policy -~
Line 5: Line 3:
Rosetta translations are divided in two main groups: product translations and
distribution translations.
||<tablestyle="float:right; font-size: 0.9em; width:40%; background:#F1F1ED; margin: 0 0 1em 1em;" style="padding:0.5em;"><<TableOfContents>>||
Line 8: Line 5:
The main difference between the two is that, right now, product translation
templates are uploaded by hand by the product maintainer, while the
distribution templates are imported into Rosetta automatically by a script.
= Overview =
Line 12: Line 7:
Distribution templates get updated all the time, whenever a new package enters
one of the distributions being tracked by Rosetta, like Ubuntu Dapper, for
example. Distribution templates are optimal translation targets if you want a given distribution release to be very well covered in your language.
When you start using Launchpad to translate a project, you need to import the project's translation templates. Optionally, you may also want to import any existing translations.
Line 16: Line 9:
Product templates are updated when the responsible person for the product does it by hand, when they think is appropriate (for example, when a release is near to happen). They might be tracking a development branch that isn't yet being used by distributions, or might be the recipient where submitted translations will be used for the next stable release, due in the following three days, which will be used in most of the development versions of the different Free Software distributions. Launchpad supports GNU Gettext's ''.pot'' templates and ''.po'' translation files.
Line 18: Line 11:
== Importing Products into Rosetta == To make translating in Launchpad run smoothly for everyone, we have a few rules that you must follow to ensure a successful import of your templates and translations. Some of these rules are social and cover things such as whether you have permission from the project to start a translation effort in Launchpad. The rest of the rules are technical.
Line 20: Line 13:
When someone is interested in having an application -a product, in Launchpad's
terminology- translated in Rosetta, they have to request this translation to be
setup for the first time. After this initial setup, the product owner will be
able to upload new translation templates and new translation files whenever he
needs to, without requiring any Launchpad administrator intervention.
'''Note:''' if you follow these rules, the easiest and quickest way to get your templates and translations automatically into Launchpad is to [[Translations/ImportingFromBazaarBranches|import them from a Bazaar branch]].
Line 26: Line 15:
In the past, we have been quite flexible when uploading product templates
requested by a user. This created some problems with some program authors,
which found that their program was being re-translated on Rosetta without them
having any notice.
= Social rules =
Line 31: Line 17:
This is the reason the current policy to accept product translations, which imposes some rules on the process, has been created. The current policy is what we think will make Rosetta translations as useful as they can be, and upstream authors as productive as possible in the i18n front of their development. It will also help us
minimise the chance of getting stale products registered by Launchpad users
which at some point are not taking care of updating the files or product
information.
When you request a new translation template import into Launchpad, you should make sure of the following:
Line 36: Line 19:
In order to import a new product for translation in Rosetta, the requester
needs to do the following:
 * The project is published using an [[Legal/ProjectLicensing|open source licence]], or the project has a valid [[https://edge.launchpad.net/+tour/join-launchpad#commercial|commercial subscription]].
 * The project leaders are happy to publish translations made in Launchpad for their project using the BSD licence.
 * The project is not part of an organisation -- such as GNU or Debian -- that already uses another method of translation.
 * You represent the upstream project or you otherwise have permission from the project to start a translation effort on Launchpad.
 * If you're creating a new project in Launchpad, it must be generic and not specific to translations or a particular language: i.e. ''myproject'' not ''myproject-translations''.
Line 39: Line 25:
 * Contact the upstream authors of the product, and tell them about his plans. We suggest using the mail template at the end of this page.
 * If they agree to use Rosetta as their infrastructure for translation, the product will be marked as "Rosetta official", and the upstream author will be the product owner.[[BR]][[BR]]
 Being an "official Rosetta product" means the authors of the product delegate the job of dealing with translations to Rosetta translators. They will just have to post new versions of their templates, and collect the fruits of translator's work before their release.[[BR]][[BR]]
 We also consider products using Rosetta as an auxiliary source of data, which is mixed with the translations they get by other means (directly in their source repositories, etc.). This use case currently fits in the "Rosetta official" group, but it is the responsability of the product owner to make an effort to avoid duplication of work (ie, two persons translating to the same language, one on Rosetta and the other externally).[[BR]][[BR]]
 * If they don't agree, we won't import the package into a product, as we want to avoid upsetting upstream authors, and inviting people to create some translations that may never get integrated in the official tarballs.[[BR]][[BR]]
 In this case, if that same product exists in the Ubuntu distribution, it will be possible to translate it through the distribution templates. That path only guarantees that the translations will appear in the next Ubuntu release.
 * Translations for products belonging to projects with an already established translation infrastructure, such as Debian or GNU, are handled in a special way. In general, requests to import such products won't be accepted unless the translator coordinator for that project agrees on using Rosetta for their language.
 In this case, the translator(s) will be added to the relevant translators group, such as ([https://launchpad.net/translations/groups/gnu-translators/ GNU translators], for example), the templates will be imported and will be assigned to this group. Members of GNU Translators will be composed strictly of people already belonging to the upstream translator group, as the [http://www.iro.umontreal.ca/~gnutra/ Translation Project] (used by GNU projects), and will be added by request of the language's team leader.[[BR]][[BR]]
 KDE and GNOME will be always imported automatically from the data in their CVS/Subversion repositories, and the product templates will be assigned to [https://launchpad.net/translations/groups/gnome-translation-project/ GNOME translators] and KDE translators, respectively. Again, only people who are members of the KDE and GNOME official translation teams will be able to commit translations to those products. Other contributions will be accepted into the database as "Suggestions", which might or might not end up appearing in GNOME or KDE releases. The automatic mass-import of upstream KDE and GNOME is being planned, but isn't implemented yet.[[BR]][[BR]]
 This allows some language teams to use Rosetta without opening the doors to duplication of work for the rest of the teams.
 
For those distribution translations to be picked up by upstream authors and
integrated in their repositories, Ubuntu maintainers need to send them directly
to them, or they can download them from Rosetta if they want. The most
effective way is to have someone from the upstream team taking care of updating
the templates regularly in a launchpad product.
Line 56: Line 26:
== Example mail template == = Technical rules =

Whenever you upload a template for the first time, we check it manually. After that, it should get through our automated approval process without problems. Whether by hand or using software, we'll check each template uploaded using the following rules:

 * The template must be in GNU Gettext format and its file name end in ```.pot``` (see our [[#guidelines|guidelines]] below for directory structure)
 * ```msgid``` strings must be in English, not any other language or symbolic identifiers.
 * If there are multiple template files, each should be in a separate directory. If you're uploading through the web interface, you can upload multiple template files as a tarball. Launchpad can see the directory structure inside the tarball. If you upload just a single file, all the browser gives us is its name and its contents.

If you are uploading translation files, you should follow these rules:

 * The file must be in GNU Gettext ''.po'' format.
 * Translation files should be in the same directory as the template to which they relate.
 * The translation files should be named for the appropriate language code: e.g. ''pt_BR.po'' Portugese as spoken in Brazil or ''fr.po'' for French as spoken in France. Launchpad only accepts languages that have an [[http://en.wikipedia.org/wiki/ISO_639|ISO 639 code]].
  * There are two exceptions to this rule: English as spoken in the UK must be named ''en_GB.po'' and Chinese. Chinese exists in Launchpad only as three variants: Simplified Chinese (''zh_CN''), Traditional Chinese (''zh_TW'') and Hong Kong Chinese (''zh_HK'').


<<Anchor(guidelines)>>
= Other useful guidelines =

You can learn more about working with translations and templates in ''.po'' and ''.pot'' format by reading the [[http://www.gnu.org/software/gettext/manual/gettext.html|GNU Gettext documentation]].

You should also be aware of the following:

 * Launchpad doesn't support translation to language variants (e.g. Serbian written in Latin, ''sr@Latn'').
 * When naming translation files, you should leave out the country code if it is the primary or original country where that language is spoken. For example: ''pt'' for Portuguese, not ''pt_PT''.

== Sample directory layout ==

We recommend the standard GNU Gettext directory and file layout:
Line 58: Line 57:
Dear maintainer,   template1/template1.pot
  template1/es.po
  template1/de.po
  ...
  template2/template2.pot
  template2/es.po
  template2/de.po
}}}

== Working with upstream projects ==

Thousands of people use Launchpad to translate software into their own language. Once you open a project for translation in Launchpad, it's likely that you'll get contributions from members of the Launchpad translations community.

We want everyone's work in Launchpad Translations to have a chance of making it into software that people use. That's why we insist that anyone opening a project in Launchpad for translation must either represent the upstream project or otherwise have permission from the project. We'd hate to see people make translations only for them not to stand a chance of being used in the project.

If you want to open a project for translation in Launchpad, but you're not already involved in that project, you should get in touch with the project.

=== Template for contacting upstream projects ===

If you want to suggest to a project that they use Launchpad to translate their software, you might find this email template useful.

{{{
Dear project maintainer,
Line 62: Line 83:
I've been translating other programs using Rosetta, an advanced web-based translation portal which is being developed by Canonical (Ubuntu Linux's parent company). Rosetta seems an advantageous choice for small/medium Free Software projects like yours, as it allows you to trivially avoid the legwork involved in making your application available in as many languages as possible. I've been translating other programs using Launchpad Translations, a web-based translation service provided by Canonical (the primary sponsor of Ubuntu). Launchpad makes it easy for people to suggest translations and already has a community of thousands of translators.
Line 64: Line 85:
With Rosetta, you would just need to publish a ''translation template'' -.pot file- via a webform when it best suits you (for example, when your next version is feature complete). Once it is published in Rosetta, it would be made available to a body of dozens of Free Software enthusiasts who would be then able to translate it. When you're ready to release your next version, you would request an ''export' of all the available translations, which you would get in a tar.gz archive. With Launchpad, all you'd need to do is publish a "translation template" -- in the form of a GNU Gettext .pot file -- via a web form when it best suits you (for example, when your next version is feature complete).  Once published in Launchpad Translations, it would be made available to the community of translators who would be then able to translate it.  When you're ready to release your next version, you would request an 'export' of all the available translations, which you would get in a tar.gz archive.
Line 66: Line 87:
Rosetta is under development, and features are being added and improved every week. It is and will always be free of charge. For me, it would make translating your application very easy. Launchpad Translations is under continuous development, and features are being added and improved every month. It is and will always be free of charge for free software projects. For me, it would make translating your application very easy.
Line 68: Line 89:
You can learn more about Rosetta in <http://launchpad.net/rosetta/>. You can learn more about Launchpad Translations at <https://launchpad.net/+tour/translation>.
Line 70: Line 91:
Thanks, Thank you,
}}}
Line 72: Line 94:
}}} ~- [[Translations/YourProject|< Translating your project]] -~

Launchpad Help > Translations > Import policy

Overview

When you start using Launchpad to translate a project, you need to import the project's translation templates. Optionally, you may also want to import any existing translations.

Launchpad supports GNU Gettext's .pot templates and .po translation files.

To make translating in Launchpad run smoothly for everyone, we have a few rules that you must follow to ensure a successful import of your templates and translations. Some of these rules are social and cover things such as whether you have permission from the project to start a translation effort in Launchpad. The rest of the rules are technical.

Note: if you follow these rules, the easiest and quickest way to get your templates and translations automatically into Launchpad is to import them from a Bazaar branch.

Social rules

When you request a new translation template import into Launchpad, you should make sure of the following:

  • The project is published using an open source licence, or the project has a valid commercial subscription.

  • The project leaders are happy to publish translations made in Launchpad for their project using the BSD licence.
  • The project is not part of an organisation -- such as GNU or Debian -- that already uses another method of translation.
  • You represent the upstream project or you otherwise have permission from the project to start a translation effort on Launchpad.
  • If you're creating a new project in Launchpad, it must be generic and not specific to translations or a particular language: i.e. myproject not myproject-translations.

Technical rules

Whenever you upload a template for the first time, we check it manually. After that, it should get through our automated approval process without problems. Whether by hand or using software, we'll check each template uploaded using the following rules:

  • The template must be in GNU Gettext format and its file name end in .pot (see our guidelines below for directory structure)

  • msgid strings must be in English, not any other language or symbolic identifiers.

  • If there are multiple template files, each should be in a separate directory. If you're uploading through the web interface, you can upload multiple template files as a tarball. Launchpad can see the directory structure inside the tarball. If you upload just a single file, all the browser gives us is its name and its contents.

If you are uploading translation files, you should follow these rules:

  • The file must be in GNU Gettext .po format.

  • Translation files should be in the same directory as the template to which they relate.
  • The translation files should be named for the appropriate language code: e.g. pt_BR.po Portugese as spoken in Brazil or fr.po for French as spoken in France. Launchpad only accepts languages that have an ISO 639 code.

    • There are two exceptions to this rule: English as spoken in the UK must be named en_GB.po and Chinese. Chinese exists in Launchpad only as three variants: Simplified Chinese (zh_CN), Traditional Chinese (zh_TW) and Hong Kong Chinese (zh_HK).

Other useful guidelines

You can learn more about working with translations and templates in .po and .pot format by reading the GNU Gettext documentation.

You should also be aware of the following:

  • Launchpad doesn't support translation to language variants (e.g. Serbian written in Latin, sr@Latn).

  • When naming translation files, you should leave out the country code if it is the primary or original country where that language is spoken. For example: pt for Portuguese, not pt_PT.

Sample directory layout

We recommend the standard GNU Gettext directory and file layout:

  template1/template1.pot
  template1/es.po
  template1/de.po
  ...
  template2/template2.pot
  template2/es.po
  template2/de.po

Working with upstream projects

Thousands of people use Launchpad to translate software into their own language. Once you open a project for translation in Launchpad, it's likely that you'll get contributions from members of the Launchpad translations community.

We want everyone's work in Launchpad Translations to have a chance of making it into software that people use. That's why we insist that anyone opening a project in Launchpad for translation must either represent the upstream project or otherwise have permission from the project. We'd hate to see people make translations only for them not to stand a chance of being used in the project.

If you want to open a project for translation in Launchpad, but you're not already involved in that project, you should get in touch with the project.

Template for contacting upstream projects

If you want to suggest to a project that they use Launchpad to translate their software, you might find this email template useful.

Dear project maintainer,

I am interested in translating your application X into the language L, and have noticed you don't have an established translation framework.

I've been translating other programs using Launchpad Translations, a web-based translation service provided by Canonical (the primary sponsor of Ubuntu). Launchpad makes it easy for people to suggest translations and already has a community of thousands of translators.

With Launchpad, all you'd need to do is publish a "translation template" -- in the form of a GNU Gettext .pot file -- via a web form when it best suits you (for example, when your next version is feature complete).  Once published in Launchpad Translations, it would be made available to the community of translators who would be then able to translate it.  When you're ready to release your next version, you would request an 'export' of all the available translations, which you would get in a tar.gz archive.

Launchpad Translations is under continuous development, and features are being added and improved every month.  It is and will always be free of charge for free software projects.  For me, it would make translating your application very easy.

You can learn more about Launchpad Translations at <https://launchpad.net/+tour/translation>.

Thank you,

< Translating your project

Translations/YourProject/ImportPolicy (last edited 2018-05-24 17:26:01 by cjwatson)