libvirt/po
Jiri Denemark 35ad5e85dd build: Add checks for permutable format strings
Since all messages marked for translation contain permutable format
strings, we can add checks for enforcing them.

The syntax check does not catch all cases as it only checks format
strings between _(" and the first ". In other words messages where \"
appears before the first format string or multi-line messages where the
first format strings is not in the first line will not be checked. On
the other hand, it's run automatically by "meson test".

check-pot.py python script will detect all incorrect format strings, but
it's not as easy to use as it requires libvirt.pot to be regenerated and
this does not happen during a standard build. The following steps are
needed to check messages with check-pot.py:

    meson compile libvirt-pot-dep
    meson compile libvirt-pot
    meson compile libvirt-pot-check

Don't forget to revert changes to libvirt.pot if you run these commands
locally as we don't want each patch series to update libvirt.pot.

Shell scripts (tools/libvirt-guests.sh.in is the only one currently)
need to be exempt from this check as shell's printf function does not
understand the permutable format strings.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
2023-04-01 11:40:36 +02:00
..
as.po Update translation files 2023-04-01 10:35:15 +02:00
bg.po Update translation files 2023-04-01 10:35:15 +02:00
bn_IN.po Update translation files 2023-04-01 10:35:15 +02:00
bs.po Update translation files 2023-04-01 10:35:15 +02:00
ca.po Update translation files 2023-04-01 10:35:15 +02:00
cs.po Update translation files 2023-04-01 10:35:15 +02:00
da.po Update translation files 2023-04-01 10:35:15 +02:00
de.po Update translation files 2023-04-01 10:35:15 +02:00
el.po Update translation files 2023-04-01 10:35:15 +02:00
en_GB.po Update translation files 2023-04-01 10:35:15 +02:00
es.po Update translation files 2023-04-01 10:35:15 +02:00
fi.po Update translation files 2023-04-01 10:35:15 +02:00
fr.po Update translation files 2023-04-01 10:35:15 +02:00
gu.po Update translation files 2023-04-01 10:35:15 +02:00
hi.po Update translation files 2023-04-01 10:35:15 +02:00
hr.po Update translation files 2023-04-01 10:35:15 +02:00
hu.po Update translation files 2023-04-01 10:35:15 +02:00
id.po Update translation files 2023-04-01 10:35:15 +02:00
it.po Update translation files 2023-04-01 10:35:15 +02:00
ja.po Update translation files 2023-04-01 10:35:15 +02:00
ka.po Update translation files 2023-04-01 10:35:15 +02:00
kn.po Update translation files 2023-04-01 10:35:15 +02:00
ko.po Update translation files 2023-04-01 10:35:15 +02:00
libvirt.pot po: Refresh potfile 2023-04-01 10:33:57 +02:00
LINGUAS Added translation using Weblate (Croatian) 2022-10-20 15:46:47 +02:00
meson.build build: Add checks for permutable format strings 2023-04-01 11:40:36 +02:00
mk.po Update translation files 2023-04-01 10:35:15 +02:00
ml.po Update translation files 2023-04-01 10:35:15 +02:00
mr.po Update translation files 2023-04-01 10:35:15 +02:00
ms.po Update translation files 2023-04-01 10:35:15 +02:00
nb.po Update translation files 2023-04-01 10:35:15 +02:00
nl.po Update translation files 2023-04-01 10:35:15 +02:00
or.po Update translation files 2023-04-01 10:35:15 +02:00
pa.po Update translation files 2023-04-01 10:35:15 +02:00
pl.po Update translation files 2023-04-01 10:35:15 +02:00
POTFILES logging: add log cleanup for obsolete domains 2023-02-06 15:28:51 +01:00
pt_BR.po Update translation files 2023-04-01 10:35:15 +02:00
pt.po Update translation files 2023-04-01 10:35:15 +02:00
README.rst po: update docs to refer to Weblate instead of Zanata 2020-06-08 16:38:47 +01:00
ru.po Update translation files 2023-04-01 10:35:15 +02:00
si.po Update translation files 2023-04-01 10:35:15 +02:00
sr.po Update translation files 2023-04-01 10:35:15 +02:00
sr@latin.po Update translation files 2023-04-01 10:35:15 +02:00
sv.po Update translation files 2023-04-01 10:35:15 +02:00
ta.po Update translation files 2023-04-01 10:35:15 +02:00
te.po Update translation files 2023-04-01 10:35:15 +02:00
tr.po Update translation files 2023-04-01 10:35:15 +02:00
uk.po Update translation files 2023-04-01 10:35:15 +02:00
vi.po Update translation files 2023-04-01 10:35:15 +02:00
zh_CN.po Update translation files 2023-04-01 10:35:15 +02:00
zh_TW.po Update translation files 2023-04-01 10:35:15 +02:00

Libvirt Message Translation

Translation status

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 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.