diff --git a/README.rst b/README.rst index 5d6ca5577ae12d59848d42984dd3224badc1c147..ac6a4cd3e99239ba2d659feb48eb8f7febee1434 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 42a1b2fe601b6c77f62ed4db35d3854270c6e22d..81efa2bce3feddb7a0d61f976382dae19ee12936 100644 --- a/docs/contribute.html.in +++ b/docs/contribute.html.in @@ -42,8 +42,8 @@
  • Translation. All the libvirt modules aim to support translations where appropriate. All translation is handling outside of the normal libvirt review process, - using the Fedora - instance of the Zanata tool. Thus people wishing + using the Fedora + instance of the Weblate tool. Thus people wishing to contribute to translation should join the Fedora translation team
  • Documentation. There are docbook guides on various diff --git a/docs/hacking.rst b/docs/hacking.rst index 51ff862e8f924af6efc82aef515909cd1ddb7495..ccc94010b3a10df717d891360c1837db00d3c63a 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 `__. -Patches to translations are maintained via the `zanata -project `__. 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 `__. +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 2e234547ca799e5bbec40777c09f01b522d323cf..8d566cd9677cd364affb6f5d441aab884722515f 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. +https://translate.fedoraproject.org/projects/libvirt/libvirt/ 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: - -https://fedora.zanata.org/project/view/libvirt - -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 +change. + +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.