:title: Translate

.. _translate:

Translate
#########

As of the Liberty release, translations for various projects in OpenStack are
done on the Zanata translations platform.

At a Glance
===========

:Hosts:
  * https://translate.openstack.org
  * https://translate-dev.openstack.org
:Puppet:
  * https://opendev.org/opendev/puppet-zanata/tree/
  * :git_file:`modules/openstack_project/manifests/translate.pp`
  * :git_file:`modules/openstack_project/manifests/translate-dev.pp`
:Projects:
  * http://zanata.org/
  * https://github.com/zanata/
:Bugs:
  * https://zanata.atlassian.net/projects/ZNTA/issues/

Overview
========

The OpenStack Infrastructure runs a production instance and a development
instance of Zanata running on the `Wildfly JBoss Application Server
<http://wildfly.org/>`_. Upgrades must be tested on the development server
before being applied in production.

Translators work through the Zanata web UI or with the zanata-cli tool to do
their translations. Zuul proposes updates to translations with the
``upstream-translation-update`` and ``propose-translation-update`` jobs
defined in `project-config zuul jobs`_.


Projects are added for translations by
modifying :config:`gerrit/projects.yaml` and adding the following to
the project::

  options:
    - translate

Projects are then registered with Zanata with the register-zanata-projects.py
from :ref:`jeepyb`, this is run when :config:`gerrit/projects.yaml`
changes.

Finally, the translations jobs must be added to the project in
:config:`jenkins/jobs/projects.yaml` and :config:`zuul/layout.yaml`.

.. _project-config zuul jobs: https://opendev.org/openstack/project-config/src/branch/master/zuul.d/jobs.yaml