Fedora L10N Frequently Asked Questions
Here are some FAQs about the Localization Project.
Legend
Transifex :: A Django application for upstream translation submissions and statistics (Transifex devel page). Canonical URL: https://translate.fedoraproject.org/.
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 [1]
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...
Should I translate legal notices?
No. You must never do that. The exact wording of the legal notices is very important and a translation not approved by lawyers is very risky. Red Hat is the legal representative and primary sponsor of the Fedora Project and does not have the resources to cross check every single translation. Just leave the original English notice in tact when it covers legal matters.
Where do I report issues or feature requests?
- Issues or Feature requests specific to Fedora Infrastructure should be reported to [2]
e.g. XYZ package is not available for Translation Submission or Statistics.
- Issues or Feature requests specific to Transifex should be reported to [3].
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 Dimitris Glezos and Piotr Drąg.
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 and mailing list, if they exist.
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 .
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 internationalization 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.
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).
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. For others, it can probably be ignored.
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
My file is 100% but when I test the application I still see English strings! (#missing-strings)
This wasn't a question, by the way.
Nevermind. The following might have gone wrong:
- The strings in question have not been marked for translation by the developer, hence they haven't been included in the POT file, and thus not in the PO file. He needs to use gettext on them.
- The source files of these strings have not been marked for inclusion, in the intltool case.
- The POT file of Transifex is not up to date. The component page includes the date when the POT file has been produced. If this is more than a few hours in the past, please notify the admins, otherwise it should be OK.
- The PO file you translated was not msgmerged. In this case Transifex will show a statistic less than 100% (since it auto-merges the files). You need to acquire the file from Tx or msgmerge it with the POT file yourself.
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 Translations_Infrastructure_SOP.
Step 1: Enable access to your module
If the module is hosted on Fedora infrastructure:
- If you are the project maintainer, add the "transif" user to your project's group in the Fedora Account System and sponsor him.
- 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:
- Your repository must allow access over SSH for it to work with Transifex (currently). Someone (eg. Dimitris Glezos) will create a keypair for you and send you the public key.
- Create a VCS account (eg. transifex-fedora) using the public key and give it write access to your module.
- 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. - Test (if you can) that the above access and restrictions are in place.
- Add a comment on the bug report once everything is ready.
- Go to step 2.
If the module is hosted elsewhere but you don't want to give out ssh access:
(This is for people using distributed version control systems like git and Mercurial)
- Publish an intermediate branch on eg. github or fedorahosted, and follow the instructions for "hosted elsewhere" above.
- When Transifex updates the intermediate branch, you can pull changes into the real repository as desired.
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>) 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:
- Use the status page to get the PO file, and submit that.
- 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
I'm a developer, how can I make .desktop files translatable?
Take a look at this email on fedora-trans-list.
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).
I can't find "About this Computer" string. Where is it?
It can be found at AboutThisComputer.
Is the section of export regulations shown at the bottom of the fedoraproject.org/get-fedora page translatable?
No. This is purposely set up as non-translatable. Please refer to Non-translatable export regulations?.
When is the merge happened for POT/POs?
Straight after String Freeze, the developers will merge latest strings of software for the translators. It is same for documentation, the authors will merge latest strings of each document after their String Freeze. Software, Beta Release Notes, GA Release Notes and other guides have different String Freezes, and those are scheduled in "Translation Task List" for each release, which can be found under "Detailed Schedules" section in Schedule page.
If some strings change past string freeze, how do I request a string freeze breakage?
Email the [4] mailing list!