Internationalization

This part of the documentation covers the localization and translation of LEAP Client. Because we want to bring fire to the people, in as many countries and languages as possible.

Translating the LEAP Client PyQt Application

For translators

Note

We should probably move the translators info to a top level section of the docs, and leave this as internal notes.

We are using transifex to coordinate translation efforts. If you want to contribute, just sign up there and ...

Note

... and what??

For devs: i18n conventions

Note

should say something about our special cases (provider labels and exceptions) when we get decision about it.

Refer to pyqt documentation.

tl;dr;:

self.tr('your string')

for any string that you want to be translated, as long as the instance derives from QObject.

If you have to translate something that it is not a QObject, use the magic leap translate method:

from leap.util.translations import translate

class Foo(object):
     bar = translate(<Context>, <string>, <comment>)

For i18n maintainers

You need pylupdate4 and lrelease for these steps. To get it, in debian:

$ apt-get install pyqt4-dev-tools qt4-linguist-tools

If you do not already have it, install the transifex-client from the cheese shop:

pip install  transifex-client

You can learn more about the transifex-client here.

1. Add any new source files to the project file, data/leap_client.pro. We should automate this with some templating, it’s tedious.

2. Update the source .ts file data/ts/en_US.ts.:

$ make translations

3. Push source .ts file to transifex:

$ tx push -s

4. Let the translation fairies do their work...

5. Et voila! Get updated .ts files for each language from Transifex. For instance, to pull updated spanish translations:

$ tx pull -l es
Pulling new translations for resource leap-client.leap-client (source: data/ts/en_US.ts)
-> es: data/translations/es.ts
Done.

Note that there is a configuration option in .tx/config for setting the minimum completion percentage needed to be able to actually pull a resource.

6. Generate .qm files from the updated .ts files:

$ make translations

and yes, it’s the same command than in step 2. One less thing to remember :)

7. Check that the .qm for the language you’re working with is listed in data/resources/locale.qrc file. That should take the translated files from data/translations

8. Re-generate src/leap/gui/locale_qrc. This is the embedded resource file that we load in the main app entry point; and from where we load the data for the qt translator object:

$ make resources

If you want to try it, just set your LANG environment variable:

$ LANG=es_ES leap-client

Translating the Documentation

Note

...unfinished

translating sphinx docs

Table Of Contents

Previous topic

PyQt Resource files

Next topic

Debian

This Page