The Fedora translation team has stopped using Zanata because the
software itself is dead upstream. In its place is the Weblate
platform. In theory we should have been able to work with Weblate in the
same way as we did for Zanata, pushing a pot file periodically, and
pulling .po files periodically. In practice this fails for libvirt.git
because Weblates RPC API doesn't scale sufficiently well. It will
frequently throw errors with the large libvirt.pot file and it gets
slower at an exponential rate as you add more languages.
Weblate has another mode of operating though which is way more common,
whereby it directly pulls a .pot from your git repo, and then directly
pushes .po files back, either using a trusted SSH key, or by opening a
merge request for GitLab/GitHub/etc. This is the mode we're going to
have to use in libvirt projects.
Compared to what we're currently doing with Zanata the downsides are:
- We have to store libvirt.pot in git and refresh it periodically
- The .po files are only partially minimized, as while they have
locations stripped, they still contain non-translated msgids
The plussides are
- We don't have to interact with Weblate at all, only the libvirt
git repo
- We'll be able to use the normal meson i18n integration, merely
by calling
i18n.gettext(meson.project_name(),
args: ['--sort-output'],
preset: 'glib')
I'm intending to open discussion with weblate maintainers to see if
either of those two downsides can be eliminated via feature enhancements
to Weblate. In the meanwhile we just have to accept them, as otherwise
we're not going to get any translations since Zanata is dead.
Daniel P. Berrangé (7):
po: switch to using LINGUAS file for list of languages
po: delete empty translations
po: refresh to drop unused translations
po: rename the .mini.po files to have just a .po suffix
po: generate .pot file with strings in alphabetical order
po: stop stripping non-translated strings from po files
po: go back to storing the .pot file in git
Makefile.am | 1 -
po/LINGUAS | 42 +
po/Makefile.am | 50 +-
po/af.mini.po | 19 -
po/am.mini.po | 19 -
po/anp.mini.po | 19 -
po/ar.mini.po | 23 -
po/{as.mini.po => as.po} | 402 +-
po/ast.mini.po | 19 -
po/bal.mini.po | 19 -
po/be.mini.po | 20 -
po/{bg.mini.po => bg.po} | 5 +-
po/bn.mini.po | 21 -
po/{bn_IN.mini.po => bn_IN.po} | 126 +-
po/bo.mini.po | 19 -
po/br.mini.po | 19 -
po/brx.mini.po | 19 -
po/{bs.mini.po => bs.po} | 5 +-
po/{ca.mini.po => ca.po} | 15 +-
po/{cs.mini.po => cs.po} | 523 +-
po/cy.mini.po | 23 -
po/{da.mini.po => da.po} | 5 +-
po/{de.mini.po => de.po} | 408 +-
po/de_CH.mini.po | 19 -
po/{el.mini.po => el.po} | 2 +-
po/{en_GB.mini.po => en_GB.po} | 402 +-
po/eo.mini.po | 19 -
po/{es.mini.po => es.po} | 409 +-
po/et.mini.po | 21 -
po/eu.mini.po | 21 -
po/fa.mini.po | 19 -
po/{fi.mini.po => fi.po} | 26 +-
po/fil.mini.po | 19 -
po/{fr.mini.po => fr.po} | 75 +-
po/fur.mini.po | 19 -
po/ga.mini.po | 20 -
po/gl.mini.po | 21 -
po/{gu.mini.po => gu.po} | 408 +-
po/he.mini.po | 21 -
po/{hi.mini.po => hi.po} | 300 +-
po/hr.mini.po | 20 -
po/{hu.mini.po => hu.po} | 5 +-
po/ia.mini.po | 19 -
po/{id.mini.po => id.po} | 2 +-
po/ilo.mini.po | 19 -
po/is.mini.po | 21 -
po/{it.mini.po => it.po} | 175 +-
po/{ja.mini.po => ja.po} | 407 +-
po/ka.mini.po | 21 -
po/kk.mini.po | 19 -
po/km.mini.po | 19 -
po/{kn.mini.po => kn.po} | 407 +-
po/{ko.mini.po => ko.po} | 240 +-
po/kw.mini.po | 20 -
po/kw(a)kkcor.mini.po | 20 -
po/kw(a)uccor.mini.po | 20 -
po/kw_GB.mini.po | 20 -
po/ky.mini.po | 19 -
po/libvirt.pot | 48582 +++++++++++++++++++++++++
po/lt.mini.po | 22 -
po/lv.mini.po | 22 -
po/mai.mini.po | 19 -
po/{mk.mini.po => mk.po} | 5 +-
po/{ml.mini.po => ml.po} | 402 +-
po/mn.mini.po | 19 -
po/{mr.mini.po => mr.po} | 434 +-
po/{ms.mini.po => ms.po} | 2 +-
po/my.mini.po | 19 -
po/{nb.mini.po => nb.po} | 5 +-
po/nds.mini.po | 19 -
po/ne.mini.po | 19 -
po/{nl.mini.po => nl.po} | 215 +-
po/nn.mini.po | 21 -
po/nso.mini.po | 21 -
po/{or.mini.po => or.po} | 375 +-
po/{pa.mini.po => pa.po} | 402 +-
po/{pl.mini.po => pl.po} | 239 +-
po/{pt.mini.po => pt.po} | 5 +-
po/{pt_BR.mini.po => pt_BR.po} | 407 +-
po/ro.mini.po | 22 -
po/{ru.mini.po => ru.po} | 376 +-
po/si.mini.po | 21 -
po/sk.mini.po | 21 -
po/sl.mini.po | 22 -
po/sq.mini.po | 23 -
po/{sr.mini.po => sr.po} | 16 +-
po/{sr(a)latin.mini.po => sr(a)latin.po} | 16 +-
po/{sv.mini.po => sv.po} | 105 +-
po/{ta.mini.po => ta.po} | 407 +-
po/{te.mini.po => te.po} | 402 +-
po/tg.mini.po | 19 -
po/th.mini.po | 21 -
po/tr.mini.po | 21 -
po/tw.mini.po | 19 -
po/{uk.mini.po => uk.po} | 534 +-
po/ur.mini.po | 21 -
po/{vi.mini.po => vi.po} | 193 +-
po/wba.mini.po | 19 -
po/yo.mini.po | 19 -
po/{zh_CN.mini.po => zh_CN.po} | 421 +-
po/zh_HK.mini.po | 19 -
po/{zh_TW.mini.po => zh_TW.po} | 9 +-
po/zu.mini.po | 21 -
scripts/minimize-po.py | 54 -
104 files changed, 48678 insertions(+), 10512 deletions(-)
create mode 100644 po/LINGUAS
delete mode 100644 po/af.mini.po
delete mode 100644 po/am.mini.po
delete mode 100644 po/anp.mini.po
delete mode 100644 po/ar.mini.po
rename po/{as.mini.po => as.po} (98%)
delete mode 100644 po/ast.mini.po
delete mode 100644 po/bal.mini.po
delete mode 100644 po/be.mini.po
rename po/{bg.mini.po => bg.po} (99%)
delete mode 100644 po/bn.mini.po
rename po/{bn_IN.mini.po => bn_IN.po} (98%)
delete mode 100644 po/bo.mini.po
delete mode 100644 po/br.mini.po
delete mode 100644 po/brx.mini.po
rename po/{bs.mini.po => bs.po} (99%)
rename po/{ca.mini.po => ca.po} (99%)
rename po/{cs.mini.po => cs.po} (98%)
delete mode 100644 po/cy.mini.po
rename po/{da.mini.po => da.po} (99%)
rename po/{de.mini.po => de.po} (97%)
delete mode 100644 po/de_CH.mini.po
rename po/{el.mini.po => el.po} (99%)
rename po/{en_GB.mini.po => en_GB.po} (97%)
delete mode 100644 po/eo.mini.po
rename po/{es.mini.po => es.po} (97%)
delete mode 100644 po/et.mini.po
delete mode 100644 po/eu.mini.po
delete mode 100644 po/fa.mini.po
rename po/{fi.mini.po => fi.po} (98%)
delete mode 100644 po/fil.mini.po
rename po/{fr.mini.po => fr.po} (98%)
delete mode 100644 po/fur.mini.po
delete mode 100644 po/ga.mini.po
delete mode 100644 po/gl.mini.po
rename po/{gu.mini.po => gu.po} (97%)
delete mode 100644 po/he.mini.po
rename po/{hi.mini.po => hi.po} (97%)
delete mode 100644 po/hr.mini.po
rename po/{hu.mini.po => hu.po} (99%)
delete mode 100644 po/ia.mini.po
rename po/{id.mini.po => id.po} (99%)
delete mode 100644 po/ilo.mini.po
delete mode 100644 po/is.mini.po
rename po/{it.mini.po => it.po} (96%)
rename po/{ja.mini.po => ja.po} (97%)
delete mode 100644 po/ka.mini.po
delete mode 100644 po/kk.mini.po
delete mode 100644 po/km.mini.po
rename po/{kn.mini.po => kn.po} (97%)
rename po/{ko.mini.po => ko.po} (97%)
delete mode 100644 po/kw.mini.po
delete mode 100644 po/kw(a)kkcor.mini.po
delete mode 100644 po/kw(a)uccor.mini.po
delete mode 100644 po/kw_GB.mini.po
delete mode 100644 po/ky.mini.po
create mode 100644 po/libvirt.pot
delete mode 100644 po/lt.mini.po
delete mode 100644 po/lv.mini.po
delete mode 100644 po/mai.mini.po
rename po/{mk.mini.po => mk.po} (99%)
rename po/{ml.mini.po => ml.po} (97%)
delete mode 100644 po/mn.mini.po
rename po/{mr.mini.po => mr.po} (98%)
rename po/{ms.mini.po => ms.po} (98%)
delete mode 100644 po/my.mini.po
rename po/{nb.mini.po => nb.po} (98%)
delete mode 100644 po/nds.mini.po
delete mode 100644 po/ne.mini.po
rename po/{nl.mini.po => nl.po} (97%)
delete mode 100644 po/nn.mini.po
delete mode 100644 po/nso.mini.po
rename po/{or.mini.po => or.po} (97%)
rename po/{pa.mini.po => pa.po} (97%)
rename po/{pl.mini.po => pl.po} (97%)
rename po/{pt.mini.po => pt.po} (99%)
rename po/{pt_BR.mini.po => pt_BR.po} (97%)
delete mode 100644 po/ro.mini.po
rename po/{ru.mini.po => ru.po} (98%)
delete mode 100644 po/si.mini.po
delete mode 100644 po/sk.mini.po
delete mode 100644 po/sl.mini.po
delete mode 100644 po/sq.mini.po
rename po/{sr.mini.po => sr.po} (99%)
rename po/{sr(a)latin.mini.po => sr(a)latin.po} (99%)
rename po/{sv.mini.po => sv.po} (95%)
rename po/{ta.mini.po => ta.po} (98%)
rename po/{te.mini.po => te.po} (97%)
delete mode 100644 po/tg.mini.po
delete mode 100644 po/th.mini.po
delete mode 100644 po/tr.mini.po
delete mode 100644 po/tw.mini.po
rename po/{uk.mini.po => uk.po} (98%)
delete mode 100644 po/ur.mini.po
rename po/{vi.mini.po => vi.po} (97%)
delete mode 100644 po/wba.mini.po
delete mode 100644 po/yo.mini.po
rename po/{zh_CN.mini.po => zh_CN.po} (98%)
delete mode 100644 po/zh_HK.mini.po
rename po/{zh_TW.mini.po => zh_TW.po} (99%)
delete mode 100644 po/zu.mini.po
delete mode 100755 scripts/minimize-po.py
--
2.26.2