From 185fe85ac0196b128de3b3f3f92b93d9927a2b50 Mon Sep 17 00:00:00 2001 From: Jan Lindemann Date: Tue, 13 Nov 2018 13:51:28 +0000 Subject: [PATCH] gettext.mk: Add support for multiple .po and .pot files Up to now, generating and installing gettext .mo files worked for exactly one .po file. Now all files in the directory are compiled by default. Editing only targets $(PROJECT).po, though, so this works as before. Signed-off-by: Jan Lindemann --- make/gettext.mk | 39 ++++++++++++++++++++------------------- 1 file changed, 20 insertions(+), 19 deletions(-) diff --git a/make/gettext.mk b/make/gettext.mk index 61bc819b..b69088c3 100644 --- a/make/gettext.mk +++ b/make/gettext.mk @@ -3,12 +3,15 @@ GETTEXT_LOCALE ?= $(notdir $(shell $(PWD))) include $(MODDIR)/make/defs.mk include $(MODDIR)/make/rules.mk -GETTEXT_POT ?= $(PROJECT).pot -GETTEXT_PO ?= $(PROJECT).po -GETTEXT_MO ?= $(PROJECT).mo -GETTEXT_INPUT_DIRS ?= $(wildcard $(TOPDIR)/tools $(TOPDIR)/src) +GETTEXT_PROJECT_PO ?= $(PROJECT).po +GETTEXT_PROJECT_POT ?= $(PROJECT).pot + +GETTEXT_PO ?= $(wildcard *.po) +GETTEXT_POT ?= $(patsubst %.po,%.pot,$(GETTEXT_PO)) +GETTEXT_MO ?= $(patsubst %.po,%.mo,$(GETTEXT_PO)) +GETTEXT_INPUT_DIRS ?= $(wildcard $(TOPDIR)/tools $(TOPDIR)/src $(TOPDIR)/conf) GETTEXT_INPUT_FILES ?= $(foreach d,$(GETTEXT_INPUT_DIRS),\ - $(shell find $d -name '*.php' -o -name '*.cpp')) + $(shell find $d -name '*.php' -o -name '*.cpp' -o -name '*.conf')) GETTEXT_KEYWORDS ?= htr ehtr all: $(GETTEXT_MO) @@ -21,27 +24,27 @@ extract: $(GETTEXT_POT) clean-mo: $(RM) -f *.mo *.tmp -$(GETTEXT_POT): $(GETTEXT_INPUT_FILES) +$(GETTEXT_PROJECT_POT): $(GETTEXT_INPUT_FILES) xgettext --from-code=utf-8 --package-name $(PROJECT) --package-version $(DIST_VERSION) \ --default-domain $(PROJECT) $(addprefix -k,$(GETTEXT_KEYWORDS)) \ --output $@.tmp $(XGETTEXT_EXTRA_OPTS) $(GETTEXT_INPUT_FILES) mv $@.tmp $@ -init: $(GETTEXT_POT) +init: $(GETTEXT_PROJECT_POT) msginit --no-translator --locale $(GETTEXT_LOCALE) \ - --output-file $(GETTEXT_PO).tmp --input $< - sed -i 's/charset=ASCII/charset=UTF-8/' $(GETTEXT_PO).tmp - mv $(GETTEXT_PO).tmp $(GETTEXT_PO) + --output-file $(GETTEXT_POJECT_PO).tmp --input $< + sed -i 's/charset=ASCII/charset=UTF-8/' $(GETTEXT_PROJECT_PO).tmp + mv $(GETTEXT_PROJECT_PO).tmp $(GETTEXT_PROJECT_PO) -merge: $(GETTEXT_POT) - msgmerge -v --lang $(GETTEXT_LOCALE) --output-file $(GETTEXT_PO).tmp \ - $(wildcard $(GETTEXT_PO)) $< - mv $(GETTEXT_PO).tmp $(GETTEXT_PO) +merge: $(GETTEXT_PROJECT_POT) + msgmerge -v --lang $(GETTEXT_LOCALE) --output-file $(GETTEXT_PROJECT_PO).tmp \ + $(wildcard $(GETTEXT_PROJECT_PO)) $< + mv $(GETTEXT_PROJECT_PO).tmp $(GETTEXT_PROJECT_PO) -edit: merge $(GETTEXT_POT) - poedit $(GETTEXT_PO) +edit: merge $(GETTEXT_PROJECT_POT) + poedit $(GETTEXT_PROJECT_PO) -$(GETTEXT_MO): $(GETTEXT_PO) +%.mo: %.po msgfmt --check --verbose --output-file $@.tmp $< mv $@.tmp $@ @@ -67,5 +70,3 @@ define copy_rule endef $(foreach d, $(HTR_SOURCE_DIRS), $(eval $(call copy_rule,$(d)))) - -