Translation
===========

Requirements
------------

 * Transifex account

 * Installed CLI tool of Transifex

Init Transifex project
----------------------

After installing ``transifex`` using pip, run the following command to initialize the project.

.. code:: shell

    tx init # Transifex instance: https://www.transifex.com/asciimoo/searx/


After ``$HOME/.transifexrc`` is created, get a Transifex API key and insert it into the configuration file.

Create a configuration file for ``tx`` named ``$HOME/.tx/config``.

.. code:: shell

    [main]
    host = https://www.transifex.com
    [searx.messagespo]
    file_filter = searx/translations/<lang>/LC_MESSAGES/messages.po
    source_file = messages.pot
    source_lang = en
    type = PO


Then run ``tx set``:

.. code:: shell

    tx set --auto-local -r searx.messagespo 'searx/translations/<lang>/LC_MESSAGES/messages.po' \
    --source-lang en --type PO --source-file messages.pot --execute


Update translations
-------------------

To retrieve the latest translations, pull it from Transifex.

.. code:: shell

    tx pull -a

Then check the new languages. If strings translated are not enough, delete those folders, because
those should not be compiled. Call the command below to compile the ``.po`` files.

.. code:: shell

    pybabel compile -d searx/translations


After the compilation is finished commit the ``.po`` and ``.mo`` files and create a PR.