Rev 189 | Blame | Compare with Previous | Last modification | View Log | RSS feed
### Makefile for GNU gettext (.po) files
srcdir = .
targetdir = ./LocaleData
CATOBJEXT = .po
CATALOGS = $(addsuffix $(CATOBJEXT), $(LINGUAS))
MO_FILES = $(addsuffix .mo, $(LINGUAS))
XGETTEXT = xgettext
MSGMERGE = msgmerge
MSGFMT = msgfmt
## Programming language: disable to let it be guessed based on filename suffix
prog_language = --language=PHP
## Character encoding of source files: disable for ASCII
encoding = --from-code=UTF-8
## Translation keyword: disable to let it be determined based on the prog. language
# --keyword --keyword='_' --keyword='$$__' --keyword=__ --keyword=__x \
# --keyword=__n:1,2 --keyword=__nx:1,2 --keyword=__xn:1,2 \
# --keyword=__p:1c,2 --keyword=__np:1c,2,3 \
# --keyword=__npx:1c,2,3 --keyword=N__ --keyword=N__n:1,2 \
# --keyword=N__p:1c,2 --keyword=N__np:1c,2,3 --keyword=%__
keywords = --keyword=tr
include PACKAGE
TD = $(strip $(TEXTDOMAIN))
srcfiles_list = $(srcdir)/POTFILES.in
srcfiles = $(shell cat $(srcfiles_list))
.PHONY: help
help:
@echo 'Available targets:'; \
echo ' pot - remake master catalog'; \
echo ' update-po - merge po files'; \
echo ' update-mo - regenerate mo files'; \
echo ' install - install mo files'; \
echo ' all - all of the above'
.PHONY: pot
pot: $(TD).pot
.PHONY: update-po
update-po: $(CATALOGS)
.PHONY: update-mo
update-mo: $(MO_FILES)
.PHONY: install
install: $(MO_FILES)
@cd $(srcdir); \
targetdir='$(targetdir)'; \
languages='$(LINGUAS)'; \
for lang in $$languages; do \
dest="$$targetdir/$$lang/LC_MESSAGES/$(TD).mo"; \
cat="$$lang.mo"; \
printf "Installing \`%s' as \`%s' ... " "$$cat" "$$dest"; \
mkdir -p "$$targetdir/$$lang/LC_MESSAGES" || exit 1; \
cp -f "$$cat" "$$dest" && chmod 644 "$$dest" || exit 1; \
echo "done."; \
done
.PHONY: all
all: install
$(TD).pot: $(srcfiles)
@printf "Generating \`%s' from source files ... " "$(TD).pot"; \
$(XGETTEXT) \
--files-from='$(srcfiles_list)' \
--output=$(TD).pot \
$(prog_language) \
$(encoding) \
--join-existing \
--add-comments=TRANSLATORS: \
$(keywords) \
--copyright-holder="$(COPYRIGHT_HOLDER)" \
--package-name="$(PACKAGE_NAME)" \
--package-version="$(PACKAGE_VERSION)" \
--msgid-bugs-address="$(MSGID_BUGS_ADDRESS)"; \
echo 'done.'
$(CATALOGS): $(TD).pot
@printf "Updating \`%s' " "$@"; \
po_file="$@"; \
lang="$${po_file%$(CATOBJEXT)}"; \
mv "$$lang.po" "$$lang.old.po"; \
if $(MSGMERGE) -o "$$lang.po" "$$lang.old.po" "$(TD).pot"; then \
rm -f "$$lang.old.po"; \
else \
echo >&2 "$(MSGMERGE) for \`$@' failed!"; \
rm -f "$$lang.po"; \
mv "$$lang.old.po" "$$lang.po"; \
fi
$(MO_FILES): $(CATALOGS)
@printf "Generating message catalog \`%s' ... " "$@";\
mo_file="$@"; \
po_file="$${mo_file%.mo}.po"; \
$(MSGFMT) --check --statistics --verbose -o "$@" "$$po_file"