Diff for "Translations/YourProject/ImportPolicy"

Not logged in - Log In / Register

Differences between revisions 4 and 23 (spanning 19 versions)
Revision 4 as of 2006-11-28 16:44:06
Size: 7303
Editor: c-24-63-70-115
Comment: fixed some grammar, meaning should still be the same
Revision 23 as of 2018-05-24 17:26:01
Size: 7044
Editor: cjwatson
Comment: Legal/ProjectLicensing merged into Legal
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
== Introduction == ## page was renamed from Translations/Lao/ImportPolicy
## page was renamed from Translations/YourProject/ImportPolicy
## page was renamed from Translations/ImportPolicy
~-[[FrontPage|Launchpad Help]] > [[Translations]] > Import policy -~
Line 3: Line 6:
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 6: Line 8:
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 10: Line 10:
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 14: Line 12:
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 16: Line 14:
== 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 18: Line 16:
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 24: Line 18:
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 29: Line 20:
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 34: Line 22:
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#Project_eligibility|open source licence]], or the project has a valid [[https://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 37: Line 28:
 * 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/rosetta/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/rosetta/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 54: Line 29:
== Example mail template == = Technical rules =

Whenever you upload a template for the first time, your project's translations maintainer will need to check it manually. After that, it should get through our automated approval process without problems. You'll need to 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 56: Line 60:
Dear maintainer,   template1/template1.pot
  template1/es.po
  template1/de.po
  ...
  template2/template2.pot
  template2/es.po
  template2/de.po
}}}
Line 58: Line 69:
I am interested in translating your application X into the language L, and have noticed you don't have an established translation framework. == Working with upstream projects ==
Line 60: Line 71:
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. 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.
Line 62: Line 73:
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. 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.
Line 64: Line 75:
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. 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.
Line 66: Line 77:
You can learn more about Rosetta in <http://launchpad.net/rosetta/>. === Template for contacting upstream projects ===
Line 68: Line 79:
Thanks, If you want to suggest to a project that they use Launchpad to translate their software, you might find this email template useful.
Line 70: Line 81:
{{{
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,
Line 71: Line 110:

~- [[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, your project's translations maintainer will need to check it manually. After that, it should get through our automated approval process without problems. You'll need to 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)