From 74e39b8ffaeea5ff360e7290a0a90e4e967e46fc Mon Sep 17 00:00:00 2001 From: Guido Günther Date: Wed, 10 Aug 2016 20:30:42 +0200 Subject: Initial commit --- locale/Makefile | 60 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 locale/Makefile (limited to 'locale/Makefile') diff --git a/locale/Makefile b/locale/Makefile new file mode 100644 index 0000000..a7b5209 --- /dev/null +++ b/locale/Makefile @@ -0,0 +1,60 @@ +# +# Makefile for PO merging and MO generation. More info in the README. +# +# make all-mo (default) - generate MO files +# make check - check translations using translate-tool +# make tx-update - download and merge translations from Transifex +# make clean - clean everything +# +DOMAIN = foreman_params_tab +VERSION = $(shell ruby -e 'require "rubygems";spec = Gem::Specification::load(Dir.glob("../*.gemspec")[0]);puts spec.version') +POTFILE = $(DOMAIN).pot +MOFILE = $(DOMAIN).mo +POFILES = $(shell find . -name '$(DOMAIN).po') +MOFILES = $(patsubst %.po,%.mo,$(POFILES)) +POXFILES = $(patsubst %.po,%.pox,$(POFILES)) +EDITFILES = $(patsubst %.po,%.edit.po,$(POFILES)) + +%.mo: %.po + mkdir -p $(shell dirname $@)/LC_MESSAGES + msgfmt -o $(shell dirname $@)/LC_MESSAGES/$(MOFILE) $< + +# Generate MO files from PO files +all-mo: $(MOFILES) + +# Check for malformed strings +%.pox: %.po + msgfmt -c $< + pofilter --nofuzzy -t variables -t blank -t urls -t emails -t long -t newlines \ + -t endwhitespace -t endpunc -t puncspacing -t options -t printf -t validchars --gnome $< > $@ + cat $@ + ! grep -q msgid $@ + +%.edit.po: + touch $@ + +check: $(POXFILES) + +# Unify duplicate translations +uniq-po: + for f in $(shell find ./ -name "*.po") ; do \ + msguniq $$f -o $$f ; \ + done + +tx-pull: $(EDITFILES) + tx pull -f + for f in $(EDITFILES) ; do \ + sed -i 's/^\("Project-Id-Version: \).*$$/\1$(DOMAIN) $(VERSION)\\n"/' $$f; \ + done + +tx-update: tx-pull + @echo + @echo Run rake plugin:gettext[$(DOMAIN)] from the Foreman installation, then make -C locale mo-files to finish + @echo + +mo-files: $(MOFILES) + git add $(POFILES) $(POTFILE) ../locale/*/LC_MESSAGES + git commit -m "i18n - pulling from tx" + @echo + @echo Changes commited! + @echo -- cgit v1.2.3