Upstream investment: translations infrastructure engineer

Outline the need for an engineer to handle adapting the current
Zanata-based translations infrastructure to instead use Weblate.

Change-Id: Id1f3daf78b3ca09cffde1863dd27a1db85927f4b
This commit is contained in:
Brian Rosmaita 2023-06-05 10:58:12 -04:00
parent ae49407b5e
commit 8387f7e32a

View File

@ -0,0 +1,75 @@
=============================================================================
Engineer to Adapt the Current Zanata Translations Infrastructure to Weblate
=============================================================================
Summary
-------
The OpenStack community is seeking an engineer with system administrator skills
(or a system administrator with engineering skills) to adapt the current
translations infrastructure that connects gerrit/zuul to a self-hosted Zanata
server, to connect instead to a third-party hosted Weblate server.
Business Case
-------------
The official language of OpenStack is United States English (en-us).
End-user-facing strings in both the web UI and in responses from the OpenStack
APIs appear by default in en-us. This can be a barrier to non-native English
readers who would otherwise like to use an OpenStack cloud. Sponsoring an
engineer to adapt the current translations infrastructure from Zanata to
Weblate is a way to visibly demonstrate your commitment to the OpenStack
community and investment in support for its translation to other languages.
Technical Details
-----------------
There are two Zuul CI jobs that exist today: upstream-translation-update and
propose-translation-update [0].
upstream-translation-update operates in a source repository and generates a
gettext .pot translations file for that repo then uploads those to Zanata
[1]. This is the piece that takes information from the git repos and puts it in
Zanata so that translators know what needs to be translated.
propose-translation-update operates in a source repository and fetches .po
files containing translated strings for various languages and synchronizes them
into the git repositories then pushes the result to Gerrit for review [2].
Unfortunately, the end result here is some `spaghetti code
<https://wikipedia.org/wiki/Spaghetti_code>`_. A possibly incomplete list of
bits that come into play here: [3][4][5]. Much of this isn't actually Zanata
specific and can be reused. We suspect that the bulk of the work in switching
to Weblate is updating these scripts [1][2] to talk to Weblate. Additionally,
reorganizing things to be more centralized and easier to maintain would be
helpful.
Another approach would be to build new jobs from scratch copying what is useful
from the old Zanata stuff. Then we can run both sets of jobs in parallel as
part of the transition ; this also has the upside of allowing you to refactor
from the start.
[0] https://opendev.org/openstack/project-config/src/commit/b5e236a37ece2a31959142b282cb24186439921e/zuul.d/jobs.yaml#L1168-L1223
[1] https://opendev.org/openstack/openstack-zuul-jobs/src/commit/ab0fad7f5878961884394a4c552256947a106fdc/roles/prepare-zanata-client/files/upstream_translation_update.sh
(Note the extract_messages_* functions that are called; these create .pot files for various types of sources.)
[2] https://opendev.org/openstack/openstack-zuul-jobs/src/commit/ab0fad7f5878961884394a4c552256947a106fdc/roles/prepare-zanata-client/files/propose_translation_update.sh
[3] https://opendev.org/openstack/project-config/src/commit/b5e236a37ece2a31959142b282cb24186439921e/playbooks/translation/
[4] https://opendev.org/openstack/project-config/src/commit/b5e236a37ece2a31959142b282cb24186439921e/roles/copy-proposal-common-scripts
[5] https://opendev.org/openstack/openstack-zuul-jobs/src/commit/ab0fad7f5878961884394a4c552256947a106fdc/roles/prepare-zanata-client/
Contact
-------
Join the OpenStack Internationalization (``#openstack-i18n``) or TC
(``#openstack-tc``) channel on `OFTC <https://www.oftc.net/>`_ to get
more information.
You can also reach out through the `OpenStack Community Mailing List
<mailto:openstack-discuss@lists.openstack.org>`_ if you would like to get
involved. Include ``[i18n]`` in your email's subject line.