--- /dev/null
+#! /bin/bash
+
+. `dirname $0`/../config.sh
+
+gettextfiles=$(find cgi-bin lib -not -name 'LanguageNames.pm' -a -not -name 'Sections.pm' -a \( -name '*.pl' -o -name '*.pm' \));
+gettextfiles="$gettextfiles bin/create_index_pages"
+podomains="pdo sections langs"
+
+# Update pot
+#
+# Common options for all calls
+xgettext_opts="--language=Perl --keyword=_ --keyword=N_ --keyword=_g --foreign-user --add-comments"
+
+echo gettextfiles=$gettextfiles
+xgettext $xgettext_opts -d pdo -o ${podir}/pdo.pot ${gettextfiles}
+xgettext $xgettext_opts -d sections -o ${podir}/sections.pot ${libdir}/Packages/Sections.pm
+xgettext $xgettext_opts -d langs -o ${podir}/langs.pot ${libdir}/Packages/I18N/LanguageNames.pm
+
+cd $podir
+
+# normalize paths in .pot files
+for domain in ${podomains}
+do
+ perl -p -i -e "s,^#:\s*\Q${topdir}\E,#: .,go" ${domain}.pot
+done
+
+# Create missing po files
+#
+for lang in ${polangs}
+do
+ for domain in ${podomains}
+ do
+ test -f ${domain}.${lang}.po || cp ${domain}.pot ${domain}.${lang}.po
+ done
+done
+
+# Update po
+#
+for lang in ${polangs}
+do
+ for domain in ${podomains}
+ do
+ mv ${domain}.${lang}.po ${domain}.${lang}.po.tmp
+ msgmerge -q -F -o ${domain}.${lang}.po ${domain}.${lang}.po.tmp ${domain}.pot
+ rm ${domain}.${lang}.po.tmp
+ # normalize paths in .po files
+ perl -p -i -e "s,^#:\s*\Q${topdir}\E,#: .,go" ${domain}.${lang}.po
+ done
+done
+
+# Update mo
+#
+test -d ${localedir} || mkdir -p ${localedir}
+for lang in ${polangs}
+do
+ test -d ${localedir}/${lang}/LC_MESSAGES \
+ || mkdir -p ${localedir}/${lang}/LC_MESSAGES
+ for domain in ${podomains}
+ do
+ echo domain=$domain language=$lang
+ msgfmt --statistics -o ${localedir}/${lang}/LC_MESSAGES/${domain}.mo ${domain}.${lang}.po
+ done
+done