# Auxiliary target for translation maintainer: # Strip untranslated strings and comments with code lines from the po files # to make them smaller before storage in SCM. DISTFILES.common.extra3 = Makefile.hack.in IPA_TEST_I18N = @top_srcdir@/ipatests/i18n.py MSGATTRIB = @MSGATTRIB@ PYTHON = @PYTHON@ GIT_BRANCH = @GIT_BRANCH@ # Don't use strip-po[t] as a dependency, https://pagure.io/freeipa/issue/8323 .PHONY: strip-po strip-pot strip-pot: $(DOMAIN).pot grep -v '#: ipaclient/remote_plugins/' $(DOMAIN).pot > $(DOMAIN).pot.tmp mv $(DOMAIN).pot.tmp $(DOMAIN).pot if [ "$(GIT_BRANCH)" != "" ]; then \ export GIT_DIFF_IPA_POT=`git diff --numstat $(DOMAIN).pot | cut -f1,2 | tr '\t' ,` || :; \ if [ "$$GIT_DIFF_IPA_POT" = "2,2" -o "$$GIT_DIFF_IPA_POT" = "1,1" ]; then \ echo "No changes in $(DOMAIN).pot, restore the original"; \ git checkout -q -f $(DOMAIN).pot; \ fi; \ fi strip-po: stamp-po for po_file in $(POFILES); do \ $(MSGATTRIB) --translated --no-fuzzy --no-location -s $$po_file > $$po_file.tmp || exit 1; \ mv $$po_file.tmp $$po_file || exit 1; \ if [ "$(GIT_BRANCH)" != "" ]; then \ export GIT_DIFF_PO_FILE=`git diff --numstat $$po_file | cut -f1,2 | tr '\t' ,` || :; \ if [ "$$GIT_DIFF_PO_FILE" = "2,2" -o "$$GIT_DIFF_PO_FILE" = "1,1" ]; then \ echo "No translation changes in $$po_file, restore the original"; \ git checkout -q -f $$po_file; \ fi; \ fi; \ done export FILES_TO_REMOVE=`find $(srcdir) -name '*.po' -empty` || exit 1; \ if [ "$$FILES_TO_REMOVE" != "" ]; then \ rm -v $$FILES_TO_REMOVE || exit 1; \ echo; echo Please remove the deleted files from LINGUAS!; echo; \ fi clean: mostlyclean rm -rf test_locale rm -f *~ *.tmp test.po all: $(DOMAIN).pot $(MAKE) strip-pot strip-po # linters test-gettext: $(DOMAIN).pot $(MAKE) strip-pot $(PYTHON) $(IPA_TEST_I18N) --test-gettext validate-pot: $(DOMAIN).pot $(MAKE) strip-pot $(PYTHON) $(IPA_TEST_I18N) --show-strings --validate-pot $< validate-po: stamp-po $(MAKE) strip-po $(PYTHON) $(IPA_TEST_I18N) --show-strings --validate-po $(POFILES) # forcefully re-generate .pot file and test it validate-src-strings: $(DOMAIN).pot-update $(MAKE) strip-pot $(MAKE) validate-pot