mirror of
ssh://git.janware.com/srv/git/janware/proj/jw-pkg
synced 2026-01-15 12:03:31 +01:00
GETTEXT_INPUT_EXTS takes a whitespace separated list of extensions which are subsequently passed to find -name to locate source files which are meant to be run through xgettext. The first argument to find, translateme, is not really meant to exist, it's just there to allow adding multiple extensions preceded by -o in a $(foreach) loop. Signed-off-by: Jan Lindemann <jan@janware.com>
91 lines
2.9 KiB
Makefile
91 lines
2.9 KiB
Makefile
GETTEXT_LOCALE ?= $(notdir $(shell $(PWD)))
|
|
|
|
include $(JWBDIR)/make/defs.mk
|
|
include $(JWBDIR)/make/rules.mk
|
|
include $(JWBDIR)/make/dev-utils.mk
|
|
|
|
GETTEXT_PROJECT_PO ?= $(PROJECT).po
|
|
GETTEXT_PROJECT_POT ?= $(PROJECT).pot
|
|
|
|
GETTEXT_POT ?= $(wildcard *.pot)
|
|
GETTEXT_PO ?= $(patsubst %.pot,%.po,$(GETTEXT_POT))
|
|
GETTEXT_MO ?= $(patsubst %.po,%.mo,$(GETTEXT_PO))
|
|
GETTEXT_INPUT_DIRS ?= $(wildcard $(TOPDIR)/tools $(TOPDIR)/src $(TOPDIR)/conf)
|
|
GETTEXT_INPUT_EXTS ?= php cpp conf
|
|
GETTEXT_INPUT_FILES ?= $(foreach d,$(GETTEXT_INPUT_DIRS),\
|
|
$(shell find $d -name translate-me $(foreach ext,$(GETTEXT_INPUT_EXTS),-o -name '*.$(ext)')))
|
|
GETTEXT_KEYWORDS ?= htr ehtr $(GETTEXT_EXTRA_KEYWORDS)
|
|
GETTEXT_LINKS ?= LC_MESSAGES
|
|
|
|
all: $(GETTEXT_MO) | $(GETTEXT_LINKS)
|
|
clean: clean-mo
|
|
$(RM) -rf *~ .*.swp
|
|
install: install_MO
|
|
distclean: clean
|
|
test:
|
|
|
|
extract: $(GETTEXT_POT)
|
|
clean-mo:
|
|
$(RM) -f *.mo *.tmp
|
|
|
|
$(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_PROJECT_POT)
|
|
msginit --no-translator --locale $(GETTEXT_LOCALE) \
|
|
--output-file $(GETTEXT_PROJECT_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_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)
|
|
|
|
merge-pot: $(GETTEXT_POT)
|
|
msgmerge -v --lang $(GETTEXT_LOCALE) --output-file $(GETTEXT_PROJECT_PO).tmp \
|
|
$(wildcard $(GETTEXT_PROJECT_PO)) $<
|
|
mv $(GETTEXT_PROJECT_PO).tmp $(GETTEXT_PROJECT_PO)
|
|
|
|
$(GETTEXT_PROJECT_PO): $(GETTEXT_POT)
|
|
msgcat --lang $(GETTEXT_LOCALE) --output-file $@.tmp $^
|
|
mv $@.tmp $@
|
|
|
|
edit: merge $(GETTEXT_PROJECT_POT)
|
|
poedit $(GETTEXT_PROJECT_PO)
|
|
|
|
%.mo: %.po
|
|
msgfmt --check --verbose --output-file $@.tmp $<
|
|
mv $@.tmp $@
|
|
|
|
LC_%:
|
|
ln -s . $@
|
|
clean.lc-links:
|
|
rm -f $(GETTEXT_LINKS)
|
|
clean: clean.lc-links
|
|
|
|
#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
|
|
|
|
GETTEXT_TMP = $(patsubst %.php,%.htr,$(GETTEXT_PREPROCESS))
|
|
GETTEXT_INPUT_FILES += $(GETTEXT_TMP)
|
|
|
|
all: htr
|
|
clean: htr-tmp-clean
|
|
|
|
htr: $(GETTEXT_TMP)
|
|
|
|
htr-tmp-clean:
|
|
$(RM) -f *.htr
|
|
|
|
define copy_rule
|
|
./%.htr.tmp: $(1)/%.php
|
|
cp $$< $$@
|
|
endef
|
|
|
|
$(foreach d, $(HTR_SOURCE_DIRS), $(eval $(call copy_rule,$(d))))
|