addresses #17
* 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:
parent
3b234e141d
commit
4a15c5b5b6
15 changed files with 409 additions and 12 deletions
50
Makefile
50
Makefile
|
@ -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)
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue