.. _translation:

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

.. _searx@transifex: https://www.transifex.com/asciimoo/searx/

Translation currently takes place on `searx@transifex`_

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:: sh

   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:: ini

    [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:: sh

   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.