tripleo-ui/docs/translation.rst

46 lines
1.3 KiB
ReStructuredText

Translation
===========
Tripleo UI uses the react-intl package for translation.
Adding translatable strings
----------------------------
Strings are prepared for translation using react-intl's ``defineMessages``
API. Check out ``./src/js/components/deployment_plan/`` for examples.
Extracting messages from components
-----------------------------------
Messages are extracted during the build process (``npm run build``) and stored
in the ``./i18n/extracted-messages/`` folder. These files can be converted into
a single ``.pot`` file with this command:
::
npm run json2pot
The resulting file (``./i18n/messages.pot``) can be uploaded to
`Zanata`_ to create/update the translation. (Note: translations for the
TripleO UI are synced from the `OpenStack Zanata`_ instance.)
.. _Zanata: http://zanata.org
.. _OpenStack Zanata: https://translate.openstack.org/project/view/tripleo-ui
Using translated ``.po`` files
------------------------------
The translated language file (``messages.po``) then needs to be converted into
one JSON file per language (Japanese in this example):
::
npm run po2json -- ./i18n/ja.po -o ./i18n/locales/ja.json
Adding a new language
---------------------
When a new language is added, we need to update the ``src/constants/i18n.js``
file with the name and abbreviation of the language.