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