We manage our translations in a Transifex project. If you want to change a translation you can go to the project page, choose your language and click on the resource “Adhocracy”. You will get a menu where you can download the .po file to edit it on your computer with an application like poedit (“Download for use”). After you translated the file you can go to the menu and upload the file. From the menu you can also use the transifex online editor (Button: “✔ Translate now”)
Adhocracy uses Babel together with Transifex to manage translations. Both are preconfigured in setup.cfg and .tx/config.
CAUTION:: If you’re using the adhocracy.buildout (highly recommended) you need to use the --distribute option to bootstrap.py to work with the preconfigured babel commands. This document assumes that you installed the buildout in a virtualenv “adhocracy”.
Install the transifex client on your system. Then add your username and password for transifex.net to ~/.transifexrc:
[https://www.transifex.net] hostname = https://www.transifex.net username = <your transifex username> password = <your transifex password> token =
All .po and .pot files should go through transifex before they are committed. This might be annoying but unifies the formatting and makes it easier to review commits.
Extract new messages with extract_messages. This will update adhocracy/i18n/adhocracy.pot:
(adhocracy)/src/adhocracy$ ../../bin/adhocpy setup.py extract_messages
Push that to transifex:
(adhocracy)/src/adhocracy$ tx push --source
Pull all files from transifex:
(adhocracy)/src/adhocracy$ tx pull
If it skips languages the files on transifex are older than the files on your system. See Troubleshooting.
(adhocracy)/src/adhocracy$ hg ci adhocracy/i18n/adhocracy.pot \ > -m 'i18n: extract new messages'
Go to the transifex project and use the the online translation editor to translate and continue with 4.
Or translate it locally. To do that make sure you have pulled the most recent translations from transifex:
$ (adhocracy)/src/adhocracy$ tx pull # pulls all languages or $ (adhocracy)/src/adhocracy$ tx pull -l <language>
Edit the .po files for your language(s).
INFO:: The prefered way to edit .po files is to use an application like poedit. It will highlight untranslated messages and messages that were created with fuzzy matching and will automatically update or remove markers like , fuzzy and update the header of the .po file.
Push the translation to transifex:
(adhocracy)/src/adhocracy$ tx push -l <language>
Pull the translation back:
(adhocracy)/src/adhocracy$ tx pull -l <language>
Compile the catalogs with compile_catalog:
(adhocracy)/src/adhocracy$ ../../bin/adhocpy setup.py compile_catalog
This will also show you errors in the .po files and statistics about the translation.
Commit the .po and .mo files of the language(s) you translated, e.g.:
(adhocracy)/src/adhocracy$ hg ci adhocracy/i18n/de' -m 'i18n: ...'
If tx skips the languages you want to pull from the server, the local file is most likely newer than the file on transifex.net. You can add -d to the command to get debug output, e.g.:
tx -d pull -l de
Than you have to check which of the files to use. Copy the local file and pull the language (with -f/–force) from transifex...:
(adhocracy)/src/adhocracy$ cd adhocracy/i18n/de/LC_MESSAGES (adhocracy) .../de/LC_MESSAGES$ cp adhocracy.po local.po (adhocracy) .../de/LC_MESSAGES$ tx pull -f -l de
..and compare them. A good tool to compare is podiff from the Python GetText Translation Toolkit (which you can install from source of from their ubuntu ppa). It contains several other tools to work with po-files. You might have to give the -r (relax) option to podiff.
(adhocracy) .../de/LC_MESSAGES$ podiff local.po adhocracy.po
(There is also another podiff package on pypi.)
The babel command update_catalog should not be used anymore. Use the tx client instead.