Rev 189 | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
209 | PointedEar | 1 | ### Makefile for GNU gettext (.po) files |
38 | PointedEar | 2 | |
3 | srcdir = . |
||
209 | PointedEar | 4 | targetdir = ./LocaleData |
38 | PointedEar | 5 | |
209 | PointedEar | 6 | CATOBJEXT = .po |
7 | CATALOGS = $(addsuffix $(CATOBJEXT), $(LINGUAS)) |
||
38 | PointedEar | 8 | MO_FILES = $(addsuffix .mo, $(LINGUAS)) |
9 | |||
209 | PointedEar | 10 | XGETTEXT = xgettext |
38 | PointedEar | 11 | MSGMERGE = msgmerge |
12 | MSGFMT = msgfmt |
||
13 | |||
209 | PointedEar | 14 | ## Programming language: disable to let it be guessed based on filename suffix |
15 | prog_language = --language=PHP |
||
16 | |||
17 | ## Character encoding of source files: disable for ASCII |
||
18 | encoding = --from-code=UTF-8 |
||
19 | |||
20 | ## Translation keyword: disable to let it be determined based on the prog. language |
||
21 | # --keyword --keyword='_' --keyword='$$__' --keyword=__ --keyword=__x \ |
||
22 | # --keyword=__n:1,2 --keyword=__nx:1,2 --keyword=__xn:1,2 \ |
||
23 | # --keyword=__p:1c,2 --keyword=__np:1c,2,3 \ |
||
24 | # --keyword=__npx:1c,2,3 --keyword=N__ --keyword=N__n:1,2 \ |
||
25 | # --keyword=N__p:1c,2 --keyword=N__np:1c,2,3 --keyword=%__ |
||
26 | keywords = --keyword=tr |
||
27 | |||
38 | PointedEar | 28 | include PACKAGE |
29 | |||
30 | TD = $(strip $(TEXTDOMAIN)) |
||
31 | |||
209 | PointedEar | 32 | srcfiles_list = $(srcdir)/POTFILES.in |
33 | srcfiles = $(shell cat $(srcfiles_list)) |
||
38 | PointedEar | 34 | |
209 | PointedEar | 35 | .PHONY: help |
38 | PointedEar | 36 | help: |
209 | PointedEar | 37 | @echo 'Available targets:'; \ |
38 | echo ' pot - remake master catalog'; \ |
||
39 | echo ' update-po - merge po files'; \ |
||
40 | echo ' update-mo - regenerate mo files'; \ |
||
41 | echo ' install - install mo files'; \ |
||
42 | echo ' all - all of the above' |
||
38 | PointedEar | 43 | |
209 | PointedEar | 44 | .PHONY: pot |
45 | pot: $(TD).pot |
||
38 | PointedEar | 46 | |
209 | PointedEar | 47 | .PHONY: update-po |
48 | update-po: $(CATALOGS) |
||
38 | PointedEar | 49 | |
209 | PointedEar | 50 | .PHONY: update-mo |
51 | update-mo: $(MO_FILES) |
||
38 | PointedEar | 52 | |
209 | PointedEar | 53 | .PHONY: install |
38 | PointedEar | 54 | install: $(MO_FILES) |
209 | PointedEar | 55 | @cd $(srcdir); \ |
189 | PointedEar | 56 | targetdir='$(targetdir)'; \ |
38 | PointedEar | 57 | languages='$(LINGUAS)'; \ |
58 | for lang in $$languages; do \ |
||
59 | dest="$$targetdir/$$lang/LC_MESSAGES/$(TD).mo"; \ |
||
60 | cat="$$lang.mo"; \ |
||
209 | PointedEar | 61 | printf "Installing \`%s' as \`%s' ... " "$$cat" "$$dest"; \ |
62 | mkdir -p "$$targetdir/$$lang/LC_MESSAGES" || exit 1; \ |
||
63 | cp -f "$$cat" "$$dest" && chmod 644 "$$dest" || exit 1; \ |
||
64 | echo "done."; \ |
||
38 | PointedEar | 65 | done |
66 | |||
209 | PointedEar | 67 | .PHONY: all |
68 | all: install |
||
38 | PointedEar | 69 | |
209 | PointedEar | 70 | $(TD).pot: $(srcfiles) |
71 | @printf "Generating \`%s' from source files ... " "$(TD).pot"; \ |
||
72 | $(XGETTEXT) \ |
||
73 | --files-from='$(srcfiles_list)' \ |
||
74 | --output=$(TD).pot \ |
||
75 | $(prog_language) \ |
||
76 | $(encoding) \ |
||
77 | --join-existing \ |
||
78 | --add-comments=TRANSLATORS: \ |
||
79 | $(keywords) \ |
||
80 | --copyright-holder="$(COPYRIGHT_HOLDER)" \ |
||
81 | --package-name="$(PACKAGE_NAME)" \ |
||
82 | --package-version="$(PACKAGE_VERSION)" \ |
||
83 | --msgid-bugs-address="$(MSGID_BUGS_ADDRESS)"; \ |
||
84 | echo 'done.' |
||
38 | PointedEar | 85 | |
209 | PointedEar | 86 | $(CATALOGS): $(TD).pot |
87 | @printf "Updating \`%s' " "$@"; \ |
||
88 | po_file="$@"; \ |
||
89 | lang="$${po_file%$(CATOBJEXT)}"; \ |
||
90 | mv "$$lang.po" "$$lang.old.po"; \ |
||
91 | if $(MSGMERGE) -o "$$lang.po" "$$lang.old.po" "$(TD).pot"; then \ |
||
92 | rm -f "$$lang.old.po"; \ |
||
93 | else \ |
||
94 | echo >&2 "$(MSGMERGE) for \`$@' failed!"; \ |
||
95 | rm -f "$$lang.po"; \ |
||
96 | mv "$$lang.old.po" "$$lang.po"; \ |
||
97 | fi |
||
38 | PointedEar | 98 | |
209 | PointedEar | 99 | $(MO_FILES): $(CATALOGS) |
100 | @printf "Generating message catalog \`%s' ... " "$@";\ |
||
101 | mo_file="$@"; \ |
||
102 | po_file="$${mo_file%.mo}.po"; \ |
||
103 | $(MSGFMT) --check --statistics --verbose -o "$@" "$$po_file" |