[libvirt PATCH 1/4] po: update docs to refer to Weblate instead of Zanata

Daniel P. Berrangé berrange at redhat.com
Mon Jun 8 10:58:37 UTC 2020

The old information about managing PO files was outdated, as we're
managing files in a different way with Weblate. This also introduces a
badge showing the translation progress across languages.

Signed-off-by: Daniel P. Berrangé <berrange at redhat.com>
 README.rst              |   3 ++
 docs/contribute.html.in |   4 +-
 docs/hacking.rst        |  10 ++--
 po/README.rst           | 111 +++++++++++-----------------------------
 4 files changed, 41 insertions(+), 87 deletions(-)

diff --git a/README.rst b/README.rst
index 5d6ca5577a..ac6a4cd3e9 100644
--- a/README.rst
+++ b/README.rst
@@ -7,6 +7,9 @@
 .. image:: https://bestpractices.coreinfrastructure.org/projects/355/badge
      :target: https://bestpractices.coreinfrastructure.org/projects/355
      :alt: CII Best Practices
+.. image:: https://translate.fedoraproject.org/widgets/libvirt/-/libvirt/svg-badge.svg
+     :target: https://translate.fedoraproject.org/engage/libvirt/
+     :alt: Translation status
 Libvirt API for virtualization
diff --git a/docs/contribute.html.in b/docs/contribute.html.in
index 42a1b2fe60..81efa2bce3 100644
--- a/docs/contribute.html.in
+++ b/docs/contribute.html.in
@@ -42,8 +42,8 @@
       <li><strong>Translation</strong>. All the libvirt modules aim to support
         translations where appropriate. All translation is
         handling outside of the normal libvirt review process,
-        using the <a href="http://fedora.zanata.org">Fedora
-        instance</a> of the Zanata tool. Thus people wishing
+        using the <a href="https://translate.fedoraproject.org/projects/libvirt/libvirt">Fedora
+        instance</a> of the Weblate tool. Thus people wishing
         to contribute to translation should join the Fedora
         translation team</li>
       <li><strong>Documentation</strong>. There are docbook guides on various
diff --git a/docs/hacking.rst b/docs/hacking.rst
index 51ff862e8f..ccc94010b3 100644
--- a/docs/hacking.rst
+++ b/docs/hacking.rst
@@ -13,11 +13,11 @@ The official upstream repository is kept in git
 along with other libvirt-related repositories (e.g.
 libvirt-python) `online <https://gitlab.com/libvirt>`__.
-Patches to translations are maintained via the `zanata
-project <https://fedora.zanata.org/>`__. If you want to fix a
-translation in a .po file, join the appropriate language team.
-The libvirt release process automatically pulls the latest
-version of each translation file from zanata.
+Patches to translations are maintained via the `Fedora Weblate
+service <https://translate.fedoraproject.org/projects/libvirt/libvirt>`__.
+If you want to contirbute to translations of libvirt, join the appropriate
+language team in Weblate.  Translation updates to libvirt will be merged
+during the feature freeze window.
 Preparing patches
diff --git a/po/README.rst b/po/README.rst
index 2e234547ca..8d566cd967 100644
--- a/po/README.rst
+++ b/po/README.rst
@@ -2,89 +2,40 @@
 Libvirt Message Translation
-Libvirt translatable messages are maintained using the GNU Gettext tools and
-file formats, in combination with the Zanata web service.
+.. image:: https://translate.fedoraproject.org/widgets/libvirt/-/libvirt/multi-auto.svg
+     :target: https://translate.fedoraproject.org/engage/libvirt/
+     :alt: Translation status
-python-zanata-client is required in order to use make to pull/push translations
-from/to Zanata server.
+Libvirt translatable messages are maintained using the GNU Gettext tools and
+file formats, in combination with the Fedora Weblate web service.
 Source repository
-The libvirt GIT repository does NOT store the master "libvirt.pot" file, nor
-does it store full "po" files for translations. The master "libvirt.pot" file
-can be generated at any time using
-  $ make libvirt.pot
-The translations are kept in minimized files that are the same file format
-as normal po files but with all redundant information stripped and messages
-re-ordered. The key differences between the ".mini.po" files in GIT and the
-full ".po" files are
-* msgids with no current translation are omitted
-* msgids are sorted in alphabetical order not source file order
-* msgids with a msgstr marked "fuzzy" are discarded
-* source file locations are omitted
-The full po files can be created at any time using
-  $ make update-po
-This merges the "libvirt.pot" with the "$LANG.mini.po" for each language, to
-create the "$LANG.po" files. These are included in the release archives created
-by "make dist".
-When a full po file is updated, changes can be propagated back into the
-minimized po files using
-  $ make update-mini-po
-Note, however, that this is generally not something that should be run by
-developers normally, as it is triggered by 'make pull-po' when refreshing
-content from Zanata.
-Zanata web service
-The translation of libvirt messages has been outsourced to the Fedora
-translation team using the Zanata web service:
-As such, changes to translations will generally NOT be accepted as patches
-directly to libvirt GIT. Any changes made to "$LANG.mini.po" files in libvirt
-GIT will be overwritten and lost the next time content is imported from Zanata.
-The master "libvirt.pot" file is periodically pushed to Zanata to provide the
-translation team with content changes, using
-  $ make push-pot
-New translated text is then periodically pulled down from Zanata to update the
-minimized po files, using
-  $ make pull-po
-Sometimes the translators make mistakes, most commonly with handling printf
-format specifiers. The "pull-po" command re-generates the .gmo files to try to
-identify such mistakes. If a mistake is made, the broken msgstr should be
-deleted in the local "$LANG.mini.po" file, and the Zanata web interface used
-to reject the translation so that the broken msgstr isn't pulled down next time.
-After pulling down new content the diff should be examined to look for any
-obvious mistakes that are not caught automatically. There have been bugs in
-Zanata tools which caused messges to go missing, so pay particular attention to
-diffs showing deletions where the msgid still exists in libvirt.pot
+The libvirt GIT repository stores the master "libvirt.pot" file, which is to be
+refreshed at time of feature freeze.
+The "po" files stored in GIT have source locations removed in order to cut down
+on storage size, by eliminating information already present in the "pot" file.
+All files are stored with strings sorted in alphabetical order rather than
+source location order, to minimize movement of strings when source locations
+The "po" files are to be EXCLUSIVELY UPDATED by merge requests sent from the
+Fedora Weblate service. Other contributors MUST NEVER send changes which touch
+the "po" file content, as that will create merge conflicts for Weblate. IOW any
+bug fixes to translations should be made via the Weblate application UI.
+After the "pot" file in libvirt GIT, Weblate will automatically run "msgmerge"
+to update the "po" files itself and send back a merge request with the changes.
+Translation updates made in the Weblate Web UI will be committed to its fork of
+the GIT repo once a day. These commits will be submitted back to the master GIT
+repo via merge requests. If a merge request from Weblate is already open,
+commits will be added to this existing merge request. Weblate will take care of
+rebasing whenever changes happen in Git master. In order to avoid having to do
+translations merges 30 times a month, merge requests from Weblate will usually
+be left open until feature freeze arrives. During the freeze period, they will
+be accepted more promptly to ensure they make it into the new release.

More information about the libvir-list mailing list