* integrate Marko Samastur's translate.js with gettext and php
 * translate the first JavaScript strings
 * add scripts/i18n.php to generate the list of i18n dictionary
This commit is contained in:
Jan Dittberner 2007-12-01 23:15:26 +00:00
parent 3b234e141d
commit 4a15c5b5b6
15 changed files with 409 additions and 12 deletions

View file

@ -26,19 +26,26 @@
VERSION := 0.2
PROJECT := davadmin
SRCFILES := $(wildcard admin/*.php)
JSFILES := admin/scripts/autocomplete.js admin/scripts/directories.js \
admin/scripts/users.js
APISRC := $(SRCFILES:,= )
TEMPDIR := $(shell mktemp -t -d davadmin.XXXXXXXXXX)
XSRCFILES := $(patsubst %,$(TEMPDIR)/%,$(SRCFILES))
XJSFILES := $(patsubst %,$(TEMPDIR)/%,$(JSFILES))
TRANSLANG := de
POSRC := po
POFILES := $(foreach lang,$(TRANSLANG),$(POSRC)/$(lang).po)
POFILES := $(foreach lang,$(TRANSLANG),$(POSRC)/$(lang)/LC_MESSAGES/$(PROJECT).po)
JSPOFILES := $(foreach lang,$(TRANSLANG),$(POSRC)/$(lang)/LC_MESSAGES/$(PROJECT)js.po)
MOFILES := $(patsubst %.po,%.mo,$(POFILES))
JSMOFILES := $(patsubst %.po,%.mo,$(JSPOFILES))
POT=$(POSRC)/$(PROJECT).pot
JSPOT=$(POSRC)/$(PROJECT)js.pot
JSTRANS=$(POSRC)/transjs.txt
.PHONY: all
all: $(POT) $(MOFILES) $(TEMPDIR)/delete
all: $(POT) $(JSPOT) $(JSTRANS) $(MOFILES) $(JSMOFILES) $(TEMPDIR)/delete
$(MOFILES): %.mo: %.po
$(MOFILES) $(JSMOFILES): %.mo: %.po
@echo "msgfmt: $@"
msgfmt -o$@ $<
@ -47,6 +54,11 @@ $(POFILES): %: $(POT)
msgmerge -U $@ $(POT)
touch $@
$(JSPOFILES): %: $(JSPOT)
@echo "msgmerge: $@"
msgmerge -U $@ $(JSPOT)
touch $@
$(POT): $(XSRCFILES) po/pot.sed
@echo "xgettext: $@"
cd $(TEMPDIR) && \
@ -61,12 +73,42 @@ $(POT): $(XSRCFILES) po/pot.sed
fi; \
done
.INTERMEDIATE: $(XSRCFILES)
$(JSPOT): $(XJSFILES) po/jspot.sed
@echo "xgettext: $@"
cd $(TEMPDIR) && \
xgettext --default-domain=$(PROJECT)js --language=Java \
--from-code=UTF-8 --keyword="intl.translate" \
--msgid-bugs-address="jan@dittberner.info" -o- $(JSFILES) \
| sed -f $(CURDIR)/po/jspot.sed \
> $(CURDIR)/$@
for pofile in $(JSPOFILES); do \
if test ! -f $(CURDIR)/$${pofile}; then \
cp $(CURDIR)/$@ $(CURDIR)/$${pofile}; \
fi; \
done
$(JSTRANS): $(XJSFILES)
@echo "generate table of translatable string: $@"
cd $(TEMPDIR) && \
xgettext --default-domain=$(PROJECT)js --language=Java \
--from-code=UTF-8 \
--omit-header --keyword="intl.translate" --properties-output \
--no-location -o- $(JSFILES) \
| awk '/^!.+=$$/ { print }' \
| sed 's,.\(.*\)=,\1,g; s,\\=,=,g; s,\\ , ,g' \
> $(CURDIR)/$@
.INTERMEDIATE: $(XSRCFILES) $(XJSFILES)
$(XSRCFILES): $(TEMPDIR)/%: %
@echo "processing: $<"
mkdir -p $(@D)
cp $< $@
$(XJSFILES): $(TEMPDIR)/%: %
@echo "processing: $<"
mkdir -p $(@D)
cp $< $@
$(TEMPDIR)/delete:
rm -rf $(TEMPDIR)