blob: 3746ac5fe1de8b836a2eed8d06b73996f6ef789d (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
|
include ../../Makefile.config
PMSFILES = $(wildcard $(PMS:%=../../%))
PMSCFILES = $(PMSFILES:%=%_.c)
POFILES = $(shell ls *.po)
MOFILES = $(POFILES:%.po=%.mo)
LANGS = $(POFILES:%.po=%)
LOCALEDIR=$(DATADIR)/locale
all: $(MOFILES)
help:
wget -q -O drakx-help.xml "http://www.mandrakelinux.com/cgi-bin/cvsweb.cgi/~checkout~/doc/manual/literal/drakx/en/drakx-help.xml?rev=1.1&content-type=text/plain"
./help_xml2pm.pl drakx-help.xml > ../../help.pm
%.mo: %.po
msgfmt -o $@ $<
$(PMSCFILES): %_.c: %
./fake_c.pl $< > $@
$(POFILES): DrakX.pot
cp -f $@ $@t
msgmerge $@t $< > $@
rm $@t
DrakX.pot: $(PMSFILES)
$(MAKE) $(PMSCFILES);
xgettext -F -n --add-comments='-PO' --keyword=_ --keyword=__ -o $@ $(PMSCFILES)
rm $(PMSCFILES)
perl i18n_compssUsers 2>/dev/null >> $@
install:
for l in $(LANGS); do \
install -d $(LOCALEDIR)/$$l/LC_MESSAGES; \
install -m 644 $$l.mo $(LOCALEDIR)/$$l/LC_MESSAGES/$(NAME).mo; \
done
clean:
rm -f drakx-help.xml empty.po tmp.* messages tmp.pot *.mo $(POFILES:%=%t) $(PMSCFILES)
check:
@grep -F '$$' DrakX.pot && { echo "bad translation strings (contains \$$) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^"; exit 1; } ||:
verif:
perl -ne '/^\s*#/ or $$i += my @l = /\b__?\(/g; END { print "$$i\n" }' $(PMSFILES)
perl -ne '$$i += my @l = /\.c:/g; END { print "$$i\n" }' DrakX.pot
verif2:
# perl -I ../.. -Mcommon -e 'foreach (qw($(PMSFILES))) { printf "package foo%d;\n", ++$$i; print common::cat_($$_) }' | perl -ne 'print if !/use (diagnostics|vars|strict)/' | OUTFILE=tmp.pm perl -I. -I../.. -Mb_dump_strings >/dev/null 2>/dev/null
perl -pe 's|$$|\\n\\|' tmp.pm > tmp.pm_.c
xgettext --keyword=_ -o tmp.po tmp.pm_.c
msgmerge DrakX.pot tmp.po > tmp.pot
grep "^msgid" tmp.pot | sort > tmp.pot.light
grep "^msgid" DrakX.pot | sort | diff - tmp.pot.light | grep "^>" || true
# for i in *.po; do echo -n "$i "; msgfmt -v $i 2>&1; done | perl -e 'print map { $_->[0] } sort { $a->[1] <=> $b->[1] } map { [ $_, (split)[1] ] } <>'
|