mirror of
ssh://git.janware.com/srv/git/janware/proj/jw-pkg
synced 2026-01-15 03:53:32 +01:00
Try to make the workflow a little more versatile. As of this commit, .pot files are assumed to preexist, save $(GETTEXT_PROJECT_POT), which can be generated from source, and should be committed, too. Signed-off-by: Jan Lindemann <jan@janware.com>
90 lines
2.8 KiB
Makefile
90 lines
2.8 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_FILES ?= $(foreach d,$(GETTEXT_INPUT_DIRS),\
|
|
$(shell find $d -name '*.php' -o -name '*.cpp' -o -name '*.conf'))
|
|
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))))
|