From 5206555d96d41cc6727b7cb38935244bb34ba67c Mon Sep 17 00:00:00 2001 From: Jan Lindemann Date: Mon, 6 Apr 2015 16:45:41 +0000 Subject: [PATCH] make: Add support for gettext.mk Signed-off-by: Jan Lindemann --- make/defs-dev.mk | 6 ++++++ make/defs-dist.mk | 6 ++++++ make/defs.mk | 7 +++++++ make/gettext.mk | 53 +++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 72 insertions(+) create mode 100644 make/gettext.mk diff --git a/make/defs-dev.mk b/make/defs-dev.mk index c940dd71..c975dd42 100644 --- a/make/defs-dev.mk +++ b/make/defs-dev.mk @@ -163,6 +163,12 @@ IMGMODE ?= 666 IMGDIROWNER ?= $(shell id -un) IMGDIRGROUP ?= $(shell id -gn) IMGDIRMODE ?= 770 +MOOWNER ?= $(shell id -un) +MOGROUP ?= $(shell id -gn) +MOMODE ?= 666 +MODIROWNER ?= $(shell id -un) +MODIRGROUP ?= $(shell id -gn) +MODIRMODE ?= 775 LOGOWNER ?= $(DOCOWNER) LOGGROUP ?= $(DOCGROUP) LOGMODE ?= $(DOCMODE) diff --git a/make/defs-dist.mk b/make/defs-dist.mk index d13f0d6c..22dfe067 100644 --- a/make/defs-dist.mk +++ b/make/defs-dist.mk @@ -164,6 +164,12 @@ IMGMODE ?= $(DOCMODE) IMGDIROWNER ?= $(DOCDIROWNER) IMGDIRGROUP ?= $(DOCDIROWNER) IMGDIRMODE ?= $(DOCDIRMODE) +MOOWNER ?= $(EXEOWNER) +MOGROUP ?= $(EXEGROUP) +MOMODE ?= 644 +MODIROWNER ?= $(EXEDIROWNER) +MODIRGROUP ?= $(EXEDIROWNER) +MODIRMODE ?= $(EXEDIRMODE) LOGOWNER ?= $(DOCOWNER) LOGGROUP ?= $(DOCGROUP) LOGMODE ?= $(DOCMODE) diff --git a/make/defs.mk b/make/defs.mk index 9c4074f3..047fefed 100644 --- a/make/defs.mk +++ b/make/defs.mk @@ -458,6 +458,13 @@ BUILD_IMGDIR ?= $(TOPDIR)/images INSTALL_IMGDIR ?= $(IMG_PREFIX)/images INSTALLED_IMG ?= $(addprefix $(INSTALL_IMGDIR)/,$(IMAGES)) +# -- MO +INSTALLATION_FILE_TYPES += MO +BUILD_MO ?= +BUILD_MODIR ?= $(PWD) +INSTALL_MODIR ?= $(ENV_PREFIX)/usr/share/locale/$(GETTEXT_LOCALE)/LC_MESSAGES +INSTALLED_MO ?= $(addprefix $(INSTALL_MODIR)/,$(wildcard *.mo)) + # -- LOG INSTALLATION_FILE_TYPES += LOG BUILD_LOGDIR ?= $(TOPDIR)/log diff --git a/make/gettext.mk b/make/gettext.mk new file mode 100644 index 00000000..18908d59 --- /dev/null +++ b/make/gettext.mk @@ -0,0 +1,53 @@ +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 ?= $(TOPDIR)/tools +GETTEXT_INPUT_FILES ?= $(foreach d,$(GETTEXT_INPUT_DIRS),\ + $(shell find $d -name '*.php' -o -name '*.cpp')) + +all: +clean: clean-mo + rm -rf *~ .*.swp +install: install_MO +all: $(GETTEXT_MO) +distclean: clean + +extract: $(GETTEXT_POT) +clean-mo: + rm -f *.mo *.tmp + +$(GETTEXT_POT): $(GETTEXT_INPUT_FILES) + xgettext --package-name $(PROJECT) --package-version $(DIST_VERSION) \ + --default-domain $(PROJECT) \ + --output $@.tmp $(GETTEXT_INPUT_FILES) + mv $@.tmp $@ + +init: $(GETTEXT_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) + +merge: $(GETTEXT_POT) + msgmerge -v --lang $(GETTEXT_LOCALE) --output-file $(GETTEXT_PO).tmp \ + $(wildcard $(GETTEXT_PO)) $< + mv $(GETTEXT_PO).tmp $(GETTEXT_PO) + +edit: $(GETTEXT_POT) + poedit $(GETTEXT_PO) + +$(GETTEXT_MO): $(GETTEXT_PO) + msgfmt --check --verbose --output-file $@.tmp $< + mv $@.tmp $@ + +#msginit --no-translator --locale es_MX --output-file $(PROJECT)_spanish.po --input $(PROJECT).pot +#sed --in-place $(PROJECT)_spanish.po --expression='/"hello, world!"/,/#: / s/""/"hola mundo"/' +#mkdir --parents ./es_MX.utf8/LC_MESSAGES +#msgfmt --check --verbose --output-file ./es_MX.utf8/LC_MESSAGES/$(PROJECT).mo $(PROJECT)_spanish.po + +