Build: integrate translation system tests again

The Makefile test targets were lost when gettextize infrastructure was
introduced. Now it is re-added in its modernized form which counts with
generated .pot files.

ipatests/i18n.py is now explicitly setting character encoding in files
it generates. According to gettext manual chapter "Filling in the Header Entry"
the Content-Type header is language-specific so it does not make sense
to fill it in in .pot file.

https://fedorahosted.org/freeipa/ticket/6418

Reviewed-By: Martin Basti <mbasti@redhat.com>
Reviewed-By: Christian Heimes <cheimes@redhat.com>
Reviewed-By: Lukas Slebodnik <lslebodn@redhat.com>
This commit is contained in:
Petr Spacek 2016-11-15 16:43:58 +01:00 committed by Martin Basti
parent 9ef5a7de78
commit 8a79625850
3 changed files with 20 additions and 2 deletions

View File

@ -128,7 +128,7 @@ apilint:
.PHONY: polint
polint:
$(MAKE) -C $(srcdir)/po validate-src-strings
$(MAKE) -C $(srcdir)/po validate-src-strings validate-po test-gettext
# Run pylint for all python files. Finds all python files/packages, skips
# folders rpmbuild, freeipa-* and dist. Skip (match, but don't print) .*,

View File

@ -546,7 +546,10 @@ def create_po(pot_file, po_file, mo_file):
for k in po.metadata:
if k.lower() == 'plural-forms':
po.metadata[k] = 'nplurals=2; plural=(n != 1)'
break
# the auto-generated PO file should have charset set to UTF-8
# because we are using UTF-8 prefix and suffix below
elif k.lower() == 'content-type':
po.metadata[k] = 'Content-Type: text/plain; charset=UTF-8'
# Iterate over all msgid's and form a msgstr by prepending

View File

@ -4,6 +4,7 @@
DISTFILES.common.extra3 = Makefile.hack.in
IPA_TEST_I18N = @top_srcdir@/ipatests/i18n.py
MSGATTRIB = @MSGATTRIB@
.PHONY: strip-po
@ -20,3 +21,17 @@ strip-po:
clean: mostlyclean
rm -f *~
# linters
test-gettext: $(DOMAIN).pot
$(IPA_TEST_I18N) --test-gettext
validate-pot:
$(IPA_TEST_I18N) --show-strings --validate-pot $(DOMAIN).pot
validate-po:
$(IPA_TEST_I18N) --show-strings --validate-po $(POFILES)
# forcefully re-generate .pot file and test it
validate-src-strings: $(DOMAIN).pot-update
$(MAKE) validate-pot