Diff for "Translations/YourProject/ImportPolicy"

Not logged in - Log In / Register

Differences between revisions 13 and 14
Revision 13 as of 2009-06-15 16:14:37
Size: 7614
Editor: 92-237-59-186
Comment: page was renamed from TranslationsImportPolicy
Revision 14 as of 2009-06-18 10:24:04
Size: 6547
Editor: 92-237-59-186
Comment:
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
## page was renamed from TranslationsImportPolicy
## page was renamed from RosettaImportPolicy
## page was renamed from RosettaNewImportPolicy
== Introduction ==
~-[[FrontPage|Launchpad Help]] > [[Translations]] > Import policy -~
Line 6: Line 3:
Launchpad handles differently translations for '''projects''' (''e.g.'' [[https://translations.launchpad.net/exaile|Exaile]]) and '''distributions''' (''e.g.'' [[https://translations.launchpad.net/ubuntu|Ubuntu]]). ||<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, project translation templates are uploaded by the project maintainer, while distribution templates are imported into Launchpad automatically by a script. = Overview =
Line 10: Line 7:
Distribution templates get updated all the time, whenever a new package enters one of the distributions being tracked by Launchpad Translations, 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 12: Line 9:
Project templates are updated when the responsible person for the project 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 14: Line 11:
== Importing project translations into Launchpad == 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 16: Line 13:
When someone is interested in having a project translated in Launchpad, they have to request this translation to be
set up for the first time. After this initial setup, the product owner will be able to upload new translation templates and new translation files whenever they need to, without requiring any Launchpad administrator intervention.
= Social rules =
Line 19: Line 15:
In the past, we have been quite flexible when uploading project templates requested by a user. This created some problems with some program authors who found that their programs were being re-translated on Launchpad without them knowing. When you request a new translation template import into Launchpad, you should make sure of the following:
Line 21: Line 17:
This is why the current policy imposes some conditions before translations can be accepted. The current policy is what we think will make translations in Launchpad 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 project information.
 * 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 24: Line 23:
In order to import a new project for translation in Launchpad, the requester needs to contact the upstream authors of the project, and tell them about his plans. We suggest using the mail template at the end of this page.
Line 26: Line 24:
If they agree to use Launchpad as their infrastructure for translation, the project's translation will be marked as "Launchpad official", and the upstream author will be the project owner. = Technical rules =
Line 28: Line 26:
Being an "official" Launchpad-translated project means that the authors of the project delegate the job of dealing with translations to translators who use Launchpad. They will just have to post new versions of their templates, and collect the fruits of translators' work before their release. 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:
Line 30: Line 28:
We also consider projects using Launchpad Translations 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 "Launchpad official" group, but it is the responsibility of the project owner to make an effort to avoid duplication of work (ie, two persons translating to the same language, one on Launchpad and the other elsewhere).  * 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.
Line 32: Line 32:
If the upstream authors do not agree, we won't import the package into a project. We want to avoid upsetting upstream authors, and inviting people to create some translations that may never get integrated in the official tarballs. If you are uploading translation files, you should follow these rules:
Line 34: Line 34:
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.  * 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'').
Line 36: Line 39:
Translations for projects belonging to organizations 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 Launchpad for their language.
Line 38: Line 40:
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://translationproject.org/|Translation Project]] (used by GNU projects), and will be added by request of the language's team leader. <<Anchor(guidelines)>>
= Other useful guidelines =
Line 40: Line 43:
KDE and GNOME will be always imported automatically from the data in their CVS/Subversion repositories, and the project 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. 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]].
Line 42: Line 45:
This allows some language teams to use Launchpad 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 Launchpad 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 project.
You should also be aware of the following:
Line 46: Line 47:
== Example mail template ==  * 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 48: Line 55:
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 52: Line 81:
I've been translating other programs using Launchpad Translations, an advanced web-based translation portal which is being developed by Canonical (Ubuntu Linux's parent company). Launchpad 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 54: Line 83:
With Launchpad, you would just need to publish a "translation template"--in the form of a .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 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 56: Line 85:
Launchpad Translations is under continuous development, and features are being added and improved every week. It is and will always be free of charge for free software projects. 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 58: Line 87:
You can learn more about Launchpad Translations at <https://translations.launchpad.net/>. You can learn more about Launchpad Translations at <https://launchpad.net/+tour/translation>.
Line 61: Line 90:

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.

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,

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