From 5c0eb246d468454de9e84dca0d08c813459a5a6d Mon Sep 17 00:00:00 2001 From: kali Date: Wed, 19 Dec 2012 07:45:02 +0900 Subject: documentation update! reSTructured (no pun intended) the sphinx docs, and trimmed README --- docs/dev/internationalization.rst | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 docs/dev/internationalization.rst (limited to 'docs/dev/internationalization.rst') diff --git a/docs/dev/internationalization.rst b/docs/dev/internationalization.rst new file mode 100644 index 00000000..4e75739b --- /dev/null +++ b/docs/dev/internationalization.rst @@ -0,0 +1,27 @@ +.. _i18n: + +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. + +.. note:: + We should probably move the translators info to a top level section of the docs, and leave this + as internal/tech-savvy notes. + +Translate the Qt App +-------------------- + +.. note:: + ... unfinished + +`transifex `_ + +Translate the Documentation +--------------------------- + +.. note:: + ...unfinished + +`translating sphinx docs `_ -- cgit v1.2.3 From 41a084823ebc967fcabb613a97e8d72c662dbe18 Mon Sep 17 00:00:00 2001 From: kali Date: Wed, 19 Dec 2012 09:38:42 +0900 Subject: added transifex config, updated some docs --- docs/dev/internationalization.rst | 45 ++++++++++++++++++++++++++++++++++----- 1 file changed, 40 insertions(+), 5 deletions(-) (limited to 'docs/dev/internationalization.rst') diff --git a/docs/dev/internationalization.rst b/docs/dev/internationalization.rst index 4e75739b..6cbc6f72 100644 --- a/docs/dev/internationalization.rst +++ b/docs/dev/internationalization.rst @@ -10,16 +10,51 @@ Because we want to *bring fire to the people*, in as many countries and language We should probably move the translators info to a top level section of the docs, and leave this as internal/tech-savvy notes. -Translate the Qt App --------------------- +Translating the LEAP Client PyQt Application +-------------------------------------------- +.. raw:: html + +
Top translations: leap-client » leap_client_es

+ + +For translators +^^^^^^^^^^^^^^^ .. note:: ... unfinished -`transifex `_ +We are using `transifex `_ site to coordinate translation efforts. If you want to contribute, just sign up there and ... + +.. note:: + ... and what?? + +For devs: i18n conventions +^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. note:: + should link to PyQt docs on i18n + also our special cases (labels and exceptions) + +tl;dr;:: + + self.tr('your string') + +for any string that you want to be translated. + +For i18n maintainers +^^^^^^^^^^^^^^^^^^^^ + +.. note:: + + how do we use the transifex client; automation. + +If you do not already have it, install the ``transifex-client`` from the cheese shop:: + + pip install transifex-client + -Translate the Documentation ---------------------------- +Translating the Documentation +------------------------------ .. note:: ...unfinished -- cgit v1.2.3 From 06bccc52c84a93407ab4699a2749b24f55fe3061 Mon Sep 17 00:00:00 2001 From: kali Date: Thu, 20 Dec 2012 08:19:55 +0900 Subject: working transifex workflow Closes #666 --- docs/dev/internationalization.rst | 68 ++++++++++++++++++++++++++++++++------- 1 file changed, 57 insertions(+), 11 deletions(-) (limited to 'docs/dev/internationalization.rst') diff --git a/docs/dev/internationalization.rst b/docs/dev/internationalization.rst index 6cbc6f72..e6b89dea 100644 --- a/docs/dev/internationalization.rst +++ b/docs/dev/internationalization.rst @@ -6,24 +6,22 @@ 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. -.. note:: - We should probably move the translators info to a top level section of the docs, and leave this - as internal/tech-savvy notes. - Translating the LEAP Client PyQt Application -------------------------------------------- .. raw:: html - + For translators ^^^^^^^^^^^^^^^ .. note:: - ... unfinished + 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 `_ site to coordinate translation efforts. If you want to contribute, just sign up there and ... + +We are using `transifex `_ to coordinate translation efforts. If you want to contribute, just sign up there and ... .. note:: ... and what?? @@ -32,8 +30,9 @@ For devs: i18n conventions ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. note:: - should link to PyQt docs on i18n - also our special cases (labels and exceptions) + should say something about our special cases (provider labels and exceptions) when we get decision about it. + +Refer to `pyqt documentation `_. tl;dr;:: @@ -41,17 +40,64 @@ tl;dr;:: for any string that you want to be translated. +.. Note about this: there seems to be some problems with the .tr method + on QObjects. Investigate this. + I still believe we can use a generic _ method which is smart enough to + fallback to QObject.tr methods or lookup our own tr implementation (for our + multilungual objects, like in exceptions or provider labels that came from json objects). + --kali + For i18n maintainers ^^^^^^^^^^^^^^^^^^^^ -.. note:: +You need ``pylupdate4`` for these steps. To get it, in debian:: - how do we use the transifex client; automation. + $ apt-get install python-qt4-utils 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 ------------------------------ -- cgit v1.2.3 From 654b83db5f050a94f9637fb1ce80df5cb7ed5a38 Mon Sep 17 00:00:00 2001 From: kali Date: Fri, 21 Dec 2012 07:44:59 +0900 Subject: updated "translate" to work in objects other than QObjects --- docs/dev/internationalization.rst | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) (limited to 'docs/dev/internationalization.rst') diff --git a/docs/dev/internationalization.rst b/docs/dev/internationalization.rst index e6b89dea..1a9af0be 100644 --- a/docs/dev/internationalization.rst +++ b/docs/dev/internationalization.rst @@ -38,21 +38,30 @@ tl;dr;:: self.tr('your string') -for any string that you want to be translated. +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: + + +.. code-block:: python + + from leap.util.translations import translate + + class Foo(object): + bar = translate(, , ) + .. Note about this: there seems to be some problems with the .tr method - on QObjects. Investigate this. - I still believe we can use a generic _ method which is smart enough to - fallback to QObject.tr methods or lookup our own tr implementation (for our - multilungual objects, like in exceptions or provider labels that came from json objects). + so the translate method could actually be the preferred thing in all the cases. + Still missing what to do for language labels (json-based). --kali For i18n maintainers ^^^^^^^^^^^^^^^^^^^^ -You need ``pylupdate4`` for these steps. To get it, in debian:: +You need ``pylupdate4`` and ``lrelease`` for these steps. To get it, in debian:: - $ apt-get install python-qt4-utils + $ apt-get install pyqt4-dev-tools qt4-linguist-tools If you do not already have it, install the ``transifex-client`` from the cheese shop:: -- cgit v1.2.3