A series of scripts in OpenStack infrastructure is used to manage translation changes in Zanata. Without running the scripts, translation changes will not be reflected into OpenStack projects. This page explains how the infrastructure scripts runs as Jenkins jobs and monitor the jobs status.
We have two types of Jenkins jobs for translations: syncing Zanata with the latest repositories and pushing translations into the repositories. The first job is for Zanata-side updates. It enables Zanata to have up-to-date texts to be translated by comparing OpenStack project repositories and Zanata. On the other hand, the second job is aimed to reflect changes related to translations. For example, if you contribute translations in Zanata, the translation results need to be pushed to the corresponding repositories.
To find updates for both Zanata and OpenStack project repositories, Jenkins starts to run scripts everyday at 6:00 UTC.
Note that not all translation changes are the target for translation jobs. The goal is to have consistent translated programs, UIs, and documentation. There’s not much sense if only a few lines are translated. The team has decided that files that have at least 75 percent of messages translated will be in the git repositories.
To not have too much churn and last minute string fixes lead to files get removed, there is also a lower threshold for releases of 66 percent of messages translated as policy - which is only manually enforced.
The OpenStack infra scripts currently download new files that are at least 75 percent translated and if files grow over time but do not get new translations (or strings change too much), they will be removed again automatically from the project with a lower threshold of currently 40 percent.
OpenStack Health dashboard provides us a convenient way to check the translation job status.
Translation infrastructure scripts are stored and managed in openstack-infra/project-config repository.
Note that the scripts use zanata-cli to pull and push translation content.
Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.