Files
wger/docs/i18n.rst
Roland Geider b18faf36bd Add Norwegian translation
Fixes #304
2016-07-11 23:14:38 +02:00

89 lines
3.1 KiB
ReStructuredText

.. _i18n:
Internationalization (i18n)
===========================
Updating the translation files
------------------------------
wger uses django's translation infrastructure, but there are a couple of things
that need to be considered. First, update your po files with the usual django
command (run this in the wger subfolder, not the root one)::
django-admin makemessages --locale en --extension py,html,tpl
Extract some translatable strings from the database such as exercise categories
and muscle names::
python ../manage.py extract-i18n
and add them to the end of ``locale/en/LC_MESSAGES/django.po``. Once you have
translated the file, compile it with::
django-admin compilemessages --all
Adding new languages
--------------------
Besides adding the new translations to the locale folder, they have to be
activated in the django settings file and in the application itself.
.. note::
At the moment composed language codes such as pt-BR (Brazilian Portuguese)
are **not** supported, the issue for this problem is `#130`_
.. _#130: https://github.com/wger-project/wger/issues/130
* **django:** add an entry to ``LANGUAGES`` in ``wger/settings_global.py``
* **wger:** add the new language in the language admin page and set the
visibility of exercises and ingredients. For the short name, use the
language code such as 'fr', for the long name the native name, in this example
'français'.
* **compile**: to use the new language files, the translation files have to be
compiled. Do this by changing to the wger folder (so you see a ``locale``
folder there) and invoking ``django-admin compilemessages``. You will also
need to restart the webserver.
* **flag icon:** add an appropriate flag icon in SVG format in ``images/icons/flag-CODE.svg``
in the static folder of the core application.
* **fixtures:** after having added the language in the admin module, the data
has to be exported so the current language configuration can be reproduced.
This is done with the ``filter-fixtures.py`` script:
* while in ``extras/scripts``, export the whole database to a json file with::
python ../../manage.py dumpdata --indent 4 --natural-foreign > data.json
* filter the database dump, this will generate a json file for each "important"
module::
python filter-fixtures.py
* copy the generated files ``languages.json`` and ``language_config.json`` to
the fixtures folder in core and config (you'll probably want to delete the
remaining json files)::
cp languages.json ../../wger/core/fixtures/
cp language_config.json ../../wger/config/fixtures/
rm *.json
Getting new languages
---------------------
If you have a local installation and new languages arrive from upstream, you
need to load the necessary data to the language tables in the database (note
that you'll need to reload/restart the webserver so the new po files are picked
up)::
python manage.py loaddata languages
python manage.py loaddata language_config
Please note that this will overwrite any changes you might have done from the
language administration module.