]>
Commit | Line | Data |
---|---|---|
1 | # this is the makefile for generating wxstd.po message catalog file and | |
2 | # building lang.mo files from the translated lang.po catalogs | |
3 | ||
4 | # this makefile may be invoked to build either wxstd.po or any lang.mo | |
5 | ||
6 | # Autodetect the languages we support. Currently this relies on make | |
7 | # being called with this dir as the cwd, but if we generate this file | |
8 | # with configure an explicit path should be specified -- RL. | |
9 | ||
10 | WX_LINGUAS := `ls *.po 2> /dev/null | sed -n 's/\(wxstd\)\?\.po//p'` | |
11 | ||
12 | # the programs we use (TODO: use configure to detect them) | |
13 | MSGFMT=msgfmt --verbose | |
14 | MSGMERGE=msgmerge | |
15 | XGETTEXT=xgettext | |
16 | XARGS=xargs | |
17 | ||
18 | # common xgettext args: C++ syntax, use the specified macro names as markers | |
19 | XGETTEXT_ARGS=-C -k_ -kwxGetTranslation -kwxTRANSLATE -s -j | |
20 | ||
21 | # implicit rules | |
22 | %.mo: %.po | |
23 | $(MSGFMT) -c -o $@ $< | |
24 | ||
25 | # a PO file must be updated from wxstd.po to include new translations | |
26 | %.po: wxstd.po | |
27 | if [ -f $@ ]; then $(MSGMERGE) $@ wxstd.po > $@.new && mv $@.new $@; else cp wxstd.po $@; fi | |
28 | ||
29 | wxstd.po: | |
30 | touch $@ | |
31 | find ../include -name "*.h" | $(XARGS) $(XGETTEXT) $(XGETTEXT_ARGS) -o wxstd.po | |
32 | find ../src -name "*.cpp" | $(XARGS) $(XGETTEXT) $(XGETTEXT_ARGS) -o wxstd.po | |
33 | find ../contrib/include -name "*.h" | $(XARGS) $(XGETTEXT) $(XGETTEXT_ARGS) -o wxstd.po | |
34 | find ../contrib/src -name "*.cpp" | $(XARGS) $(XGETTEXT) $(XGETTEXT_ARGS) -o wxstd.po | |
35 | ||
36 | allpo: force-update | |
37 | @-for t in $(WX_LINGUAS); do $(MAKE) $$t.po; done | |
38 | ||
39 | allmo: | |
40 | @for t in $(WX_LINGUAS); do $(MAKE) $$t.mo; done | |
41 | ||
42 | force-update: | |
43 | $(RM) wxstd.po | |
44 | ||
45 | # print out the percentage of the trsnalted strings | |
46 | stats: FORCE | |
47 | @for i in $(WX_LINGUAS); do \ | |
48 | x=`$(MSGFMT) -o /dev/null "$$i.po" 2>&1 | sed -e 's/[,\.]//g' \ | |
49 | -e 's/\([0-9]\+\) translated messages\?/TR=\1/' \ | |
50 | -e 's/\([0-9]\+\) fuzzy translations\?/FZ=\1/' \ | |
51 | -e 's/\([0-9]\+\) untranslated messages\?/UT=\1/'`; \ | |
52 | TR=0 FZ=0 UT=0; \ | |
53 | eval $$x; \ | |
54 | TOTAL=`expr $$TR + $$FZ + $$UT`; \ | |
55 | echo "$$i.po `expr 100 "*" $$TR / $$TOTAL`% of $$TOTAL strings"; \ | |
56 | done | |
57 | ||
58 | FORCE: | |
59 | ||
60 | .PHONY: allpo allmo force-update percentage FORCE | |
61 | ||
62 | # $Id$ |