mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-12-22 13:45:38 +00:00
po: update docs to refer to Weblate instead of Zanata
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. Reviewed-by: Pavel Hrdina <phrdina@redhat.com> Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
This commit is contained in:
parent
f45735786a
commit
2c31e5b9bc
@ -7,6 +7,9 @@
|
|||||||
.. image:: https://bestpractices.coreinfrastructure.org/projects/355/badge
|
.. image:: https://bestpractices.coreinfrastructure.org/projects/355/badge
|
||||||
:target: https://bestpractices.coreinfrastructure.org/projects/355
|
:target: https://bestpractices.coreinfrastructure.org/projects/355
|
||||||
:alt: CII Best Practices
|
: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
|
Libvirt API for virtualization
|
||||||
|
@ -42,8 +42,8 @@
|
|||||||
<li><strong>Translation</strong>. All the libvirt modules aim to support
|
<li><strong>Translation</strong>. All the libvirt modules aim to support
|
||||||
translations where appropriate. All translation is
|
translations where appropriate. All translation is
|
||||||
handling outside of the normal libvirt review process,
|
handling outside of the normal libvirt review process,
|
||||||
using the <a href="http://fedora.zanata.org">Fedora
|
using the <a href="https://translate.fedoraproject.org/projects/libvirt/libvirt">Fedora
|
||||||
instance</a> of the Zanata tool. Thus people wishing
|
instance</a> of the Weblate tool. Thus people wishing
|
||||||
to contribute to translation should join the Fedora
|
to contribute to translation should join the Fedora
|
||||||
translation team</li>
|
translation team</li>
|
||||||
<li><strong>Documentation</strong>. There are docbook guides on various
|
<li><strong>Documentation</strong>. There are docbook guides on various
|
||||||
|
@ -13,11 +13,11 @@ The official upstream repository is kept in git
|
|||||||
along with other libvirt-related repositories (e.g.
|
along with other libvirt-related repositories (e.g.
|
||||||
libvirt-python) `online <https://gitlab.com/libvirt>`__.
|
libvirt-python) `online <https://gitlab.com/libvirt>`__.
|
||||||
|
|
||||||
Patches to translations are maintained via the `zanata
|
Patches to translations are maintained via the `Fedora Weblate
|
||||||
project <https://fedora.zanata.org/>`__. If you want to fix a
|
service <https://translate.fedoraproject.org/projects/libvirt/libvirt>`__.
|
||||||
translation in a .po file, join the appropriate language team.
|
If you want to contirbute to translations of libvirt, join the appropriate
|
||||||
The libvirt release process automatically pulls the latest
|
language team in Weblate. Translation updates to libvirt will be merged
|
||||||
version of each translation file from zanata.
|
during the feature freeze window.
|
||||||
|
|
||||||
Preparing patches
|
Preparing patches
|
||||||
=================
|
=================
|
||||||
|
103
po/README.rst
103
po/README.rst
@ -2,89 +2,40 @@
|
|||||||
Libvirt Message Translation
|
Libvirt Message Translation
|
||||||
===========================
|
===========================
|
||||||
|
|
||||||
|
.. image:: https://translate.fedoraproject.org/widgets/libvirt/-/libvirt/multi-auto.svg
|
||||||
|
:target: https://translate.fedoraproject.org/engage/libvirt/
|
||||||
|
:alt: Translation status
|
||||||
|
|
||||||
Libvirt translatable messages are maintained using the GNU Gettext tools and
|
Libvirt translatable messages are maintained using the GNU Gettext tools and
|
||||||
file formats, in combination with the Zanata web service.
|
file formats, in combination with the Fedora Weblate web service.
|
||||||
|
|
||||||
python-zanata-client is required in order to use make to pull/push translations
|
|
||||||
from/to Zanata server.
|
|
||||||
|
|
||||||
|
https://translate.fedoraproject.org/projects/libvirt/libvirt/
|
||||||
|
|
||||||
Source repository
|
Source repository
|
||||||
=================
|
=================
|
||||||
|
|
||||||
The libvirt GIT repository does NOT store the master "libvirt.pot" file, nor
|
The libvirt GIT repository stores the master "libvirt.pot" file, which is to be
|
||||||
does it store full "po" files for translations. The master "libvirt.pot" file
|
refreshed at time of feature freeze.
|
||||||
can be generated at any time using
|
|
||||||
|
|
||||||
::
|
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.
|
||||||
|
|
||||||
$ make libvirt.pot
|
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.
|
||||||
|
|
||||||
The translations are kept in minimized files that are the same file format
|
After the "pot" file in libvirt GIT, Weblate will automatically run "msgmerge"
|
||||||
as normal po files but with all redundant information stripped and messages
|
to update the "po" files itself and send back a merge request with the changes.
|
||||||
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
|
Translation updates made in the Weblate Web UI will be committed to its fork of
|
||||||
* msgids are sorted in alphabetical order not source file order
|
the GIT repo once a day. These commits will be submitted back to the master GIT
|
||||||
* msgids with a msgstr marked "fuzzy" are discarded
|
repo via merge requests. If a merge request from Weblate is already open,
|
||||||
* source file locations are omitted
|
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
|
||||||
The full po files can be created at any time using
|
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.
|
||||||
|
|
||||||
$ 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
|
|
||||||
|
Loading…
Reference in New Issue
Block a user