From Fedora Project Wiki

No edit summary
(DL >Tx)
Line 7: Line 7:
== Legend ==
== Legend ==


Damned Lies (DL) :: Our former statistics software. Upstream is GNOME.
Transifex :: A Django application for upstream translation submissions and statistics ([http://transifex.org Transifex devel page]). Canonical URL: https://translate.fedoraproject.org/tx/.
 
Fedora Stats page :: Our instance of DL. Currently hosted at https://translate.fedoraproject.org/ and deprecated in favor of Transifex.
 
Transifex :: A Django application for upstream translation submissions ([http://transifex.org Transifex devel page]). Canonical URL: https://translate.fedoraproject.org/tx/.


VCS :: Version Control System. CVS, Subversion, Mercurial (hg), git are all VCSs.
VCS :: Version Control System. CVS, Subversion, Mercurial (hg), git are all VCSs.
Line 21: Line 17:
=== How do I get the translation files? (#get-files) ===
=== How do I get the translation files? (#get-files) ===


You can either:
Use each module's stats page to download a PO file, using the green download icon next to each language.
 
1. Use each module's stats page to download a PO file, using the green download icon next to each language.
 
[[Image:Tx_Download.png]]
 
2. Run an anonymous checkout for each module from its VCS. You can see the repository root for each module at <code>/module</code> or on each module's stats page. Example:
<pre>:pserver:anonymous@cvs.fedoraproject.org:/cvs/docs
</pre>
 
3. Run an eponymous checkout for those modules where you already have access to. Currently these are those hosted on <code>cvs.fpo</code> (docs, l10n, pkgs repos). The advantage of this method is that you can commit from the checked out copy. Example:
<pre>export CVSROOT=:ext:<username>@cvs.fedoraproject.org:/cvs/docs
cvs co homepage
</pre>
 
{{Admon/caution | Don't forget to [[msgmerge|  msgmerge]]  if you didn't get the file from the Stats page (the stats page automatically msgmerge's the PO and POT files).}}
 
4. Grab all the msgmerged files for your language in the 'pofiles' directory way similar to the following, substituting <lang-code> with your language code (eg. 'el'):
 
<pre>export MYLANG=<lang-code>
wget -q -r -N -l 1 --accept *$MYLANG.po -nd -nH -P pofiles http://translate.fedoraproject.org/languages/$MYLANG/fedora-9
</pre>
 
In the future, we'll have a command-line interface to Transifex that you could use to easily do such stuff, like eg. running <code>tx get-lang el</code>.
 
{{Anchor|submit}}
{{Anchor|submit}}


=== How do I submit translations? (#submit) ===
=== How do I submit translations? (#submit) ===


Take a look at http://translate.fedoraproject.org/module/. There are two different families of Version Control Systems (VCS):
Modules accepting translations from Transifex are listed at https://translate.fedoraproject.org/projects/
 
1. '''cvs.fedoraproject.org''' -- All Fedora translators ([[L10N/Join| members of the 'cvsl10n' group]] ) have commit access to these modules; see [[L10N/Join| L10N/Join]]  to join 'cvsl10n'. If this is not the case, it's a bug. To commit, run an eponymous checkout and <code>cvs commit</code>.
1. '''<code>[svn,hg,git] .fedorahosted.org</code> and others''' -- All [[L10N/Join| members of the 'cvsl10n' group]]  can use Transifex to contribute to these modules.
 
Modules accepting translations from Transifex are listed at https://translate.fedoraproject.org/tx/projects/


[[Image:Tx Submit-1.png]]
[[Image:Tx Submit-1.png]]
Line 71: Line 38:
* Issues or Feature requests specific to Transifex should be reported to http://transifex.org/newticket
* Issues or Feature requests specific to Transifex should be reported to http://transifex.org/newticket
e.g. Statistics should show last commiter information as well on the status page, Sorting of statistics should be available.
e.g. Statistics should show last commiter information as well on the status page, Sorting of statistics should be available.


The fastest way of getting things done is to approach FLP-admin group via IRC #fedora-l10n .
The fastest way of getting things done is to approach FLP-admin group via IRC #fedora-l10n .
Line 78: Line 44:


The website of the Fedora Localization Project is '''http://translate.fedoraproject.org/'''.
The website of the Fedora Localization Project is '''http://translate.fedoraproject.org/'''.
Some quick facts:


* It is maintained by the [[L10N| L10N project]], usually by DimitrisGlezos and DiegoZacarao.
* It is maintained by the [[L10N| L10N project]], usually by DimitrisGlezos and DiegoZacarao.
* Code lives in CVS. See [[L10N/Tools#cvs| L10N/Tools#cvs]] .


{{Anchor|bugs}}
{{Anchor|bugs}}
=== Where are issues and requests for a website of the Translation Project reported? (#bugs) ===
=== Where are issues and requests for a website of the Translation Project reported? (#bugs) ===


The best place to report requests and issues about the statistics pages and other Localization-specific websites, is [https://bugzilla.redhat.com/bugzilla/enter_bug.cgi?product=Fedora%20Localization&component=Website Bugzilla, L10n/Website component] . Here's a quick [https://bugzilla.redhat.com/buglist.cgi?product=Fedora+Localization&version=unspecified&component=Website&bug_status=NEW&bug_status=ASSIGNED&bug_status=NEEDINFO&bug_status=MODIFIED&short_desc_type=allwordssubstr&short_desc=&long_desc_type=allwordssubstr&long_desc= query of existing website reports].
The best place to report requests and issues about the Localization-specific websites, is [https://bugzilla.redhat.com/bugzilla/enter_bug.cgi?product=Fedora%20Localization&component=Website Bugzilla, L10n/Website component]. Here's a quick [https://bugzilla.redhat.com/buglist.cgi?product=Fedora+Localization&version=unspecified&component=Website&bug_status=NEW&bug_status=ASSIGNED&bug_status=NEEDINFO&bug_status=MODIFIED&short_desc_type=allwordssubstr&short_desc=&long_desc_type=allwordssubstr&long_desc= query of existing website reports].
 
To report requests and issues about the Fedora's Transifex instance, use [https://bugzilla.redhat.com/bugzilla/enter_bug.cgi?product=Fedora%20Localization&component=Website Bugzilla, L10n/Transifex component] . Here's a quick [https://bugzilla.redhat.com/buglist.cgi?product=Fedora+Localization&version=unspecified&component=Transifex&bug_status=NEW&bug_status=ASSIGNED&bug_status=NEEDINFO&bug_status=MODIFIED&short_desc_type=allwordssubstr&short_desc=&long_desc_type=allwordssubstr&long_desc= query of existing Transifex reports].


Before opening a new bug report, please take a look at the above query to see if there's an existing report opened. It sometimes help to ask in #fedora-l10n if there's a known issue at that exact moment. If not, please open a bug report describing what's wrong with the service in clarity. Include the nature of the problem, the module/branch combination, the time (in UTC) it happened and your Fedora username. If you suspect it might be a problem with the particular file you are uploading or the target file, include that information as well.
Before opening a new bug report, please take a look at the above query to see if there's an existing report opened. It sometimes help to ask in #fedora-l10n if there's a known issue at that exact moment. If not, please open a bug report describing what's wrong with the service in clarity. Include the nature of the problem, the module/branch combination, the time (in UTC) it happened and your Fedora username. If you suspect it might be a problem with the particular file you are uploading or the target file, include that information as well.
Line 96: Line 57:


{{Anchor|new-team}}
{{Anchor|new-team}}
=== How do I add a new team to the website? (#new-team) ===
=== How do I create a new team? (#new-team) ===


See [[L10N/Maintainer| L10N/Maintainer]] on how to become a maintainer of a new language.
See [[L10N/Maintainer| L10N/Maintainer]] on how to become a maintainer of a new language.


1. The website uses two files for team/people associations: <code>people.xml.in</code> and <code>translation-teams.xml.in</code>. To create a team and/or become a maintainer for it, we'll need to have those files updated for the information to go live on our website.
To add your team, create a [https://bugzilla.redhat.com/bugzilla/enter_bug.cgi?product=Fedora%20Localization&component=l10n-requests bug report on l10n-requests]. Include language, your name and FAS account, e-mail address, and URL to team's website.
 
To add your team to the website, you will need to create chunks of XML for these files that reflect the changes you want to do. Here are examples of XML chunks:
 
1. people.xml.in
<pre>
<person id="alan">
<name>Alan Cox</name>
<email>alan@redhat.com</email>
<webpage>http://fedoraproject.org/wiki/User:Alan</webpage>
</person>
</pre>
1. translation-teams.xml.in
<pre>
<team id="el">
<_language id="el">Greek</_language>
<coordinator id="glezos"/>
<bugzilla-component>Greek [el]</bugzilla-component>
<webpage>http://www.fedoraproject.gr/</webpage>
<mailing-list>fedora-trans-el@redhat.com</mailing-list>
<mailing-list-subscribe>http://www.redhat.com/mailman/listinfo/fedora-trans-el</mailing-list-subscribe>
</team>
</pre>
1. Create a [https://bugzilla.redhat.com/bugzilla/enter_bug.cgi?product=Fedora%20Localization&component=l10n-requests bug report on l10n-requests] . Either paste the XML chunks created in previous step or attach a patch for the files on the bug report (preferred). Make sure you added your information in both files.
1. Attach a hackergotchi image if you'd like (up to 100px max side).
1. Someone with a local copy of the website (see Maintainers on top of page) will test the changes, commit them and tag as LIVE. After this, and in a couple of hours, the website should be updated automatically.
 
{{ Admon/tip | Do not mark as LIVE unless someone has tested the changes locally first.}}
 
{{ Admon/tip | The files must be valid XML. Make sure your tags are closed properly and any '&' characters are replaced with '&amp;amp;'.}}


{{Anchor|bugzilla-team}}
{{Anchor|bugzilla-team}}
Line 191: Line 123:
The statistics are automatically updated as soon as you submit translations.
The statistics are automatically updated as soon as you submit translations.


You can see when was the last time the PO files were updated, on the module's page at a message like the following: ''Download POT file  POT file (217 messages) — updated on 2007-09-24 01:43:00 MST. ''  (MST is UTC-7). Also, you can see for each module/PO file the updated time inside the directories at http://translate.fedoraproject.org/POT/.
You can see when was the last time the PO files were updated, on the module's page at a message like the following: ''Download POT file  POT file (217 messages) — updated on 2007-09-24 01:43:00 MST. ''  (MST is UTC-7).


{{Anchor|100-percent}}
{{Anchor|100-percent}}
Line 200: Line 132:


* The statistics are not updated on-the-fly but on a scheduled base -- you might need to wait until the next run of the update script. See [[live|  #live]] .
* The statistics are not updated on-the-fly but on a scheduled base -- you might need to wait until the next run of the update script. See [[live|  #live]] .
* Most likely the PO file you submitted needed an msgmerge first, because it didn't contain the latest strings from the POT file. Let's say you checked out the PO file from the Version Control System (VCS), translated it 100% and committed it back. Before calculating the statistics, DL does an <code>msgmerge</code> on the PO file with the POT.
* Most likely the PO file you submitted needed an msgmerge first, because it didn't contain the latest strings from the POT file. Let's say you checked out the PO file from the Version Control System (VCS), translated it 100% and committed it back. Before calculating the statistics, Transifex does an <code>msgmerge</code> on the PO file with the POT.
 
{{Anchor|add-stats}}
=== What to do if a module is missing from the statistics page? (#add-stats) ===
 
In general, we add modules on the statistics page that ship with Fedora or are related to Fedora, and can [[submit|  receive translations]]  by translators.
 
If a module should be there that isn't, please do the following:
 
# Make sure your module uses the PO file format and all POs are inside one directory, eg. <code>./po/</code> (not in the <code>./locale/<lang></code> format)
# Enable anonymous clone/checkout on your repo/module.
# We need to add your name to <code>people.xml.in</code>, and your module to <code>fedora-modules.xml.in</code> and <code>releases.xml.in</code> (see [[L10N/Tools#cvs| L10N/Tools#cvs]]  for CVS information). Create chunks of XML for these files that reflect the changes you want to do (note: replace & with &amp;)
# Create a [https://bugzilla.redhat.com/bugzilla/enter_bug.cgi?product=Fedora%20Localization&component=l10n-requests bug report on l10n-requests] . Either paste the XML chunks created in previous step or attach a patch for the files on the bug report (preferred).
# Someone with a local copy of the website (see Maintainers on top of page) will test the changes and commit them.


{{Anchor|add-transifex}}
{{Anchor|add-transifex}}
Line 279: Line 198:
=== A module doesn't have PO files nor statistics at all! Can you fix this? (#no-po-files) ===
=== A module doesn't have PO files nor statistics at all! Can you fix this? (#no-po-files) ===


Unfortunately no, that's an issue the developer can solve. Please open a bug report against that particular project: for Fedora/RH stuff that would be either RH Bugzilla or the project's trac system on fedorahosted.org.
Unfortunately no, that's an issue the developer can solve. Please open a bug report against that particular project: for Fedora/RH stuff that would be either RH Bugzilla or the project's Trac system on fedorahosted.org.


{{Anchor|msgmerge}}
{{Anchor|msgmerge}}

Revision as of 23:40, 12 June 2009

Fedora L10N Frequently Asked Questions

Here are some FAQs about the Localization Project.

Note.png
More information about translations can be found at the Fedora Translation Quick Start Guide , which is more up to date and translated in many languages.

Legend

Transifex :: A Django application for upstream translation submissions and statistics (Transifex devel page). Canonical URL: https://translate.fedoraproject.org/tx/.

VCS :: Version Control System. CVS, Subversion, Mercurial (hg), git are all VCSs.

General Questions

How do I get the translation files? (#get-files)

Use each module's stats page to download a PO file, using the green download icon next to each language.

How do I submit translations? (#submit)

Modules accepting translations from Transifex are listed at https://translate.fedoraproject.org/projects/

Tx Submit-1.png

Click on the above marked button, "Send a Translation for this language", will open up the Browse & Send button shown below to submit your translations...

Tx Submit-2.png

Where do I report issues or feature requests?

e.g. XYZ package is not available for Translation Submission or Statistics

e.g. Statistics should show last commiter information as well on the status page, Sorting of statistics should be available.

The fastest way of getting things done is to approach FLP-admin group via IRC #fedora-l10n .

Website Questions

The website of the Fedora Localization Project is http://translate.fedoraproject.org/.

  • It is maintained by the L10N project, usually by DimitrisGlezos and DiegoZacarao.

Where are issues and requests for a website of the Translation Project reported? (#bugs)

The best place to report requests and issues about the Localization-specific websites, is Bugzilla, L10n/Website component. Here's a quick query of existing website reports.

Before opening a new bug report, please take a look at the above query to see if there's an existing report opened. It sometimes help to ask in #fedora-l10n if there's a known issue at that exact moment. If not, please open a bug report describing what's wrong with the service in clarity. Include the nature of the problem, the module/branch combination, the time (in UTC) it happened and your Fedora username. If you suspect it might be a problem with the particular file you are uploading or the target file, include that information as well.

If the issue is about Transifex as a software like feature requests and general problems not specific to the Fedora instance, please use the upstream ticketing system of Transifex .

How do I create a new team? (#new-team)

See L10N/Maintainer on how to become a maintainer of a new language.

To add your team, create a bug report on l10n-requests. Include language, your name and FAS account, e-mail address, and URL to team's website.

How do I create a Bugzilla component for my language? (#bugzilla-team)

We have a separate Bugzilla component for every language, in order for bug reports to reach the correct people (ie. the ones that can fix them). We maintain these entries in an owners.list file on our VCS. You can find it in the L10n CVS, at /cvs/l10n/owners/. Each organized language group should have an entry there.

For more information, refer to L10N/Maintainer .

Idea.png
Make sure the entry you are adding references an existing Bugzilla account. If needed, create one first.

What are all those warnings on the stats pages? (#stats-warnings)

These errors warnings are shown to help us identify which projects have issues with their i18n support. Usually they are harmless (at least to translators), but sometimes help bugs to come to the surface, so they mostly interest developers and administrators.

intltool errors (#intltool-errors)

The most common ones (eg. "Can't generate POT file"). This usually means that the module doesn't use intltool for extracting strings, so we can't be 100% sure that all the strings marked for translation in the application do show up in the POT file. If the error ends to "Using old one", then the POT provided by the translator is used.

File:L10N FAQ l10nerror1.png

There are some missing files from POTFILES.in (#missing-files)

Some source files aren't used for string extraction. The developer will probably want to know about this (hint: open a bug report).

File:L10N FAQ l10nerror2.png

Entry for this language is not present in (ALL_)LINGUAS file (warning) (#missing-from-linguas)

Some projects use some special files (po/LINGUAS, po/Makefile), to identify which languages are being shipped with their product -- for example, those which have translations > 80% complete. The languages mentioned in those files/variables are shipped/packaged, the others are not.

When these files are located in the VCS, the statistics interface tries to find the particular language in that file, and if it doesn't find it, it produces a warning. If you see this warning, most likely you will need to add your language in the respective LINGUAS file, or the appropriate variable in the Makefile.

If the module ships by default all languages but the warning still shows up, it can be safely ignored.

Don't know where to look if this language is actually used (warning) (#where-to-look)

Tried searching in common locations (eg. po/LINGUAS, Makefile) to find if this language is actually used, but failed. For intltool-based modules, this means the language isn't shipped with the product (eg. flp-website ). For others, it can probably be ignored.

File:L10N FAQ l10nerror3.png

Some error (eg. Missing files from POTFILES.in) AND Can't generate POT file (error) (#error-no-pot)

Some modules don't provide a POT file and depend on intltool to dynamically produce one. This is great, however the maintainer needs to make sure the POT file can be generated and intltool doesn't choke (hint: intltool -r or -m). If intltool does choke, then there is no POT file for the translators (and the statistics interface) to work on and the error screen shown below is produced.

The developer should be notified immediately to fix this (eg. update their POTFILES.{in,skip} and reminded to keep them up2date). Here's a template bug report for missing files from POTFILES.{in,skip}.

File:L10N FAQ l10n-error-inexistent-potfilesin.png

Are the statisics live? How often are they updated? (#update-frequency)

The statistics are automatically updated as soon as you submit translations.

You can see when was the last time the PO files were updated, on the module's page at a message like the following: Download POT file POT file (217 messages) — updated on 2007-09-24 01:43:00 MST. (MST is UTC-7).

My PO file is 100% but that doesn't show up on the page. What's up? (#100-percent)

There are a number of reasons this would happen, but here are the most common ones.

  • The statistics are not updated on-the-fly but on a scheduled base -- you might need to wait until the next run of the update script. See #live .
  • Most likely the PO file you submitted needed an msgmerge first, because it didn't contain the latest strings from the POT file. Let's say you checked out the PO file from the Version Control System (VCS), translated it 100% and committed it back. Before calculating the statistics, Transifex does an msgmerge on the PO file with the POT.

How do I add a module to Transifex? (#add-transifex)

To enable translators send contributions to your project through Transifex, you need to have a special VCS account for Transifex. The Fedora Infrastructure-side details are described at Infrastructure/SOP/Translations.

Step 1: Enable access to your module

If the module is hosted on Fedora infrastructure:

  • If you are not the maintainer, open a bug report to that particular project with a request from the maintainers to add/sponsor the user and have that bug block the Transifex tracker bug, #436824. You can look at bug #438122 as a template if you'd like).
  • This user is used by Transifex to push translations to your repo. This user shouldn't be removed in the future, otherwise translation submissions will fail for our translators.
  • Go to step 2.

If the module is hosted elsewhere:

  1. Your repository must allow access over SSH for it to work with Transifex (currently). Someone (eg. DimitrisGlezos) will create a keypair for you and send you the public key.
  2. Create a VCS account (eg. transifex-fedora) using the public key and give it write access to your module.
  3. Restrict this access only to the directories/files you want the translators to have access to (eg. /po/*). If this is not possible, don't worry too much: you can restrict access to the translators from inside Transifex through a regex.
  4. Test (if you can) that the above access and restrictions are in place.
  5. Add a comment on the bug report once everything is ready.
  6. Go to step 2.

Step 2: Let us know

Create a bug report on l10n-requests and add the following information on it:

Module name
Description
Project webpage
VCS root, module, branch
File filter (eg. <code>po/.*</code>)
Changelog file (if applicable)
Web front-end to VCS
<Link to bug report/ticket of step 1> (if applicable)

Someone will test the write access, add it to Transifex, test with a file commit and report back.

Finally, send an email to fedora-trans-list and let the contributors know about the change. You're all done!

Other questions

Why isn't there a POT file in module X? (#no-pot)

Some developers use gettext to extract the strings in POT files when they build their package. Some others, though, use intltool to do it, which allows the POT file to be produced dynamically when needed. Hence, these modules sometimes don't have a POT file in their VCS, since it's not needed. To update your PO file (msgmerge), you can simply use:

cd po && intltool-update <language>

If you need a POT file for some reason, you can use the following command to create one:

cd po && intltool-update --pot

Please note that not having a POT requires that intltool-update should run without any problems (see also: [#missing-files-no-pot] ). If not, or if you'd like a POT file present in the VCS regardless of the use of intltool, you can open a bug report against that module and ask the developer to provide one.

A module doesn't have PO files nor statistics at all! Can you fix this? (#no-po-files)

Unfortunately no, that's an issue the developer can solve. Please open a bug report against that particular project: for Fedora/RH stuff that would be either RH Bugzilla or the project's Trac system on fedorahosted.org.

What's up with msgmerge? (#msgmerge)

Each PO file should have inside it all the strings that appear in the POT file; translated or not. If a string doesn't appear in the PO file, then the string in the original language will appear in the final resource. This leads to the following paradox: a PO file is 100% translated but the website shows less statistics, and even worse, the shipped application shows untranslated strings.

Ideally, all POs should be msgmerged each time the POT is updated (ie. by the developer). But since this isn't always the case, the clients (eg. the translators and the website) need to make sure they are working on msgmerged files. The website runs an msgmerge before calculating the statistics: it takes the existing PO file, merges in any new strings from the POT file and then shows the numbers. It also provides a link to the msgmerged PO file with the green download link on the left of each language.

To make sure your statistics are 100%, you can do either of the following:

  1. Use the status page to get the PO file, and submit that.
  2. Use the VCS directly to get the PO file, and msgmerge before translating. For modules with intltool support (they will have a file po/POTFILES.in):
cd po && intltool-update <language>

For others:

export L='el' && mv $L.po $L.previous.po && msgmerge $L.previous.po *pot > $L.po

When checking in/out, I get a "Permission denied" (publickey,keyboard-interactive) error (#ssh-key-denied)

Most of the cases, this is a problem with SSH keys. When a user creates a new account, we associate an SSH key with it. When a new account is created, the user is requested to upload the public part of her SSH key (located in ~/.ssh/ of your PC), and this key is used to identify the user. This way is more secure than using a simple password. If you can't authenticate to cvs.fedoraproject.org, then the SSH key of the user on the system you are using doesn't have the same SSH key as the one we have on our servers, associated with your username.

If you have changed your SSH key recently, please visit Edit your Fedora account and upload your new SSH key.

If you haven't changed your SSH key recently, make sure the system and user account you are using has your SSH keys (eg. copy them from your other PC).