[ English | English (United Kingdom) | 한국어 (대한민국) | 中文 (简体, 中国) | Deutsch | Indonesia | 日本語 | русский ]
Translation infrastructure¶
A series of tasks in OpenStack infrastructure is used to manage translation changes in Zanata. Without running the tasks, translation changes will not be reflected into OpenStack projects. This page explains how the infrastructure tasks run actual scripts as Zuul jobs and monitor the job status.
Translation jobs¶
We have two types of Zuul jobs for translations: syncing source strings into Zanata with the latest repositories and pushing translations from Zanata into the repositories. The first job is for Zanata-side updates. Up-to-date source strings to be translated are compared and updated between OpenStack project repositories and Zanata. If source texts in OpenStack project repositories are changed, then change sets are pushed into Zanata so translators deal with up-to-date source strings. On the other hand, the second job is aimed at reflecting changes in translated strings in Zanata (after translators do translation activities) into corresponding OpenStack project repositories. The job will propose changes as Translation Import Gerrit patches.
Update jobs for Zanata start after patches are merged on OpenStack project repositories, and Zuul starts to run tasks everyday at 6:00 UTC for the updates on OpenStack project repositories.
Note that not all translation changes are the target for translation jobs. The goal is to have consistent translated programs, UIs, and documentation. There is 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 executed by tasks 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.
Monitoring translation jobs status¶
The Zuul Builds Page provides us a convenient way to check the translation job status.
Translation infrastructure tasks and scripts¶
Translation infrastructure tasks are stored and managed in openstack/project-config repository. The translation infrastructure scripts are stored and managed in openstack/openstack-zuul-jobs repository.
upstream-translation-update.yaml
Implements the first Zuul job (Syncing to Zanata) by executing upstream_translation_update.sh
propose-translation-update.yaml
Carries out the second Zuul job (Syncing into repos) by executing propose_translation_update.sh
This job renames Chinese locales in Zanata (
zh-cn
andzh-tw
) tozh-hans
andzh-hant
for Horizon-related projects. For other projects and documentation (including docs in Horizon-related projects),zh-cn
andzh-tw
are used as-is. For more details, see Handling Horizon projects.
-
Common code used by propose_translation_update.sh and upstream_translation_update.sh
-
Python script to setup projects for Zanata
-
Builds release notes in both the original (English) version and translated versions (if any).
Note that the scripts in the tasks use zanata-cli to pull and push translation content.