]> git.deb.at Git - deb/packages.git/blob - cron.d/500update_mo
Add L10N support for Template Toolkit output
[deb/packages.git] / cron.d / 500update_mo
1 #! /bin/bash
2
3 . `dirname $0`/../config.sh
4
5 cd "$topdir"
6 gettextfiles=$(find cgi-bin lib -not -name 'LanguageNames.pm' -a -not -name 'Sections.pm' -a \( -name '*.pl' -o -name '*.pm' \))
7 templatefiles=$(find templates -name '*.tmpl' -o -name '*.inc')
8 gettextfiles="$gettextfiles bin/create_index_pages"
9 podomains="pdo templates sections langs"
10
11 # Update pot
12 #
13 # Common options for all calls
14 xgettext_opts="--language=Perl --keyword=N_ --keyword=_g --foreign-user --add-comments"
15
16 echo gettextfiles=$gettextfiles
17 echo templatefiles=$templatefiles
18 xgettext $xgettext_opts -d pdo -o ${podir}/pdo.pot ${gettextfiles}
19 $topdir/bin/ttxgettext templates ${templatefiles} >${podir}/templates.pot
20 xgettext $xgettext_opts -d sections -o ${podir}/sections.pot ${libdir}/Packages/Sections.pm
21 xgettext $xgettext_opts -d langs -o ${podir}/langs.pot ${libdir}/Packages/I18N/LanguageNames.pm
22
23 cd $podir
24
25 # normalize paths in .pot files
26 for domain in ${podomains}
27 do
28   perl -p -i -e "s,^#:\s*\Q${topdir}\E,#: .,go" ${domain}.pot
29 done
30
31 # Create missing po files
32 #
33 for lang in ${polangs}
34 do
35   for domain in ${podomains}
36   do
37     test -f ${domain}.${lang}.po || cp ${domain}.pot ${domain}.${lang}.po
38   done
39 done
40
41 # Update po
42 #
43 for lang in ${polangs} 
44 do
45   for domain in ${podomains}
46   do
47     cp ${domain}.${lang}.po ${domain}.${lang}.po.tmp
48     msgmerge --previous --quiet --sort-by-file -o ${domain}.${lang}.po ${domain}.${lang}.po.tmp ${domain}.pot
49     rm ${domain}.${lang}.po.tmp
50     # normalize paths in .po files
51     perl -p -i -e "s,^#:\s*\Q${topdir}\E,#: .,go" ${domain}.${lang}.po
52   done
53 done
54
55 # Update mo
56 #
57 test -d ${localedir} || mkdir -p ${localedir}
58 for lang in ${polangs}
59 do 
60   test -d ${localedir}/${lang}/LC_MESSAGES \
61       || mkdir -p ${localedir}/${lang}/LC_MESSAGES
62   for domain in ${podomains}
63   do
64     echo domain=$domain language=$lang
65     msgfmt --statistics -o ${localedir}/${lang}/LC_MESSAGES/${domain}.mo ${domain}.${lang}.po
66   done
67 done