Rev 189 | Blame | Compare with Previous | Last modification | View Log | RSS feed
### Makefile for GNU gettext (.po) filessrcdir = .targetdir = ./LocaleDataCATOBJEXT = .poCATALOGS = $(addsuffix $(CATOBJEXT), $(LINGUAS))MO_FILES = $(addsuffix .mo, $(LINGUAS))XGETTEXT = xgettextMSGMERGE = msgmergeMSGFMT = msgfmt## Programming language: disable to let it be guessed based on filename suffixprog_language = --language=PHP## Character encoding of source files: disable for ASCIIencoding = --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=trinclude PACKAGETD = $(strip $(TEXTDOMAIN))srcfiles_list = $(srcdir)/POTFILES.insrcfiles = $(shell cat $(srcfiles_list)).PHONY: helphelp:@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: potpot: $(TD).pot.PHONY: update-poupdate-po: $(CATALOGS).PHONY: update-moupdate-mo: $(MO_FILES).PHONY: installinstall: $(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: allall: 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"