Subversion Repositories LCARS

Rev

Rev 189 | Blame | Compare with Previous | Last modification | View Log | RSS feed

1
### 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"