l10n-configure.sh revision 10794
10244N/A#!/bin/sh -x
4455N/A
4455N/A#
4455N/A# ALL_LINGUAS for Sun
4455N/A# We modify ALL_LINGUAS of configure.in in all GNOME modules.
4455N/A# Our l10n team translates and revises language of $SUN_ALL_LINGUAS.
4455N/A#
4455N/A
10244N/APROGNAME=`basename $0`
10244N/ASUN_ALL_LINGUAS="cs de es fr hu it ja ko pl pt_BR ru sv zh_CN zh_HK zh_TW"
10244N/AENABLE_SUN_ALL_LINGUAS=1
10244N/ADISABLE_GNU_EXTENSIONS=0
10244N/AL10N_POTFILES=${L10N_POTFILES:-"no"}
10244N/ACONFIGURE=
10244N/A
10244N/Ausage () {
10244N/A echo \
10244N/A"This script modify ALL_LINGUAS parameter in configure.in file. \n" \
10244N/A"\n" \
10244N/A"usage: $PROGNAME [OPTION...] \n" \
10244N/A" -d, --disable-sun-linguas Do not modify ALL_LINGUAS. \n" \
10244N/A" -p, --enable-pot Generate .pot file for internal. \n" \
10244N/A" -x, --disable-gnu-extensions Remove GNU extensions in po/*.po files.\n" \
10244N/A" -h, --help Show this message. \n" \
10244N/A""
10244N/A}
10244N/A
4455N/Ainit () {
10244N/A while getopts "h(help)(usage)d(disable-sun-linguas)p(enable-pot)x(disable-gnu-extensions)" opt
10244N/A do
10244N/A case $opt in
10244N/A h) usage $@;
10244N/A exit 0;;
10244N/A d) ENABLE_SUN_ALL_LINGUAS=0;;
10244N/A p) L10N_POTFILES="yes";;
10244N/A x) DISABLE_GNU_EXTENSIONS=1;;
10244N/A esac
10244N/A done
10244N/A
4455N/A if [ -f configure.in ] ; then
4455N/A CONFIGURE=configure.in
4467N/A elif [ -f configure.ac ] ; then
4455N/A CONFIGURE=configure.ac
4455N/A fi
4455N/A}
4455N/A
4455N/Apre_check () {
10244N/A if [ "$CONFIGURE" = "" -a $ENABLE_SUN_ALL_LINGUAS -eq 1 ] ; then
4455N/A echo "#### Not Found configure.in"
4455N/A exit 0
4455N/A fi
4455N/A
4455N/A if [ ! -d po ] ; then
4455N/A echo "#### Not Found po dir"
4455N/A exit 0
4455N/A fi
4455N/A}
4455N/A
10794N/A# GNU .po has several GNU extensions.
10794N/A# http://www.gnu.org/software/libc/manual/html_node/Formatting-Calendar-Time.html
10244N/Adisable_gnu_extensions () {
10244N/A cd po
10794N/A
10794N/A # Replace "%-m" with "%m" for strftime(3C).
10794N/A # Replace "%l" with "%I" for strptime(3C) and also grep %M for the workaround
10794N/A # so that we do not change %ld for printf(3C).
10794N/A # Replace "%k" with "%H" for strptime(3C).
10794N/A for po in `egrep -l \
10794N/A'^msgstr ".*%[_0^-][md].*"|'\
10794N/A'^msgstr ".*%[_0^-]*l.*%M.*"|'\
10794N/A'^msgstr ".*%M.*%[_0^-]*l.*"|'\
10794N/A'^msgstr ".*%[_0^-]*k.*"'\
10794N/A *.po`
10244N/A do
10244N/A env LANG=C LC_ALL=C \
10794N/A sed -e '/^msgstr "/s/%[_0^-]\([md]\)/%\1/g' $po |
10794N/A env LANG=C LC_ALL=C \
10794N/A sed -e '/^msgstr ".*%[_0^-]*l.*%M/s/%[_0^-]*l/%I/g' |
10794N/A env LANG=C LC_ALL=C \
10794N/A sed -e '/^msgstr ".*%M.*%[_0^-]*l/s/%[_0^-]*l/%I/g' |
10794N/A env LANG=C LC_ALL=C \
10794N/A sed -e '/^msgstr "/s/%[_0^-]*k/%H/g' > $po.$$
10244N/A mv $po.$$ $po
10244N/A done
10794N/A
10244N/A cd ..
10244N/A}
10244N/A
10244N/Aapply_sun_all_linguas_file () {
10244N/A PO_LINGUAS=`cat po/LINGUAS | grep -v "^#"`
10244N/A PO_LINGUAS=`echo "$PO_LINGUAS $SUN_ALL_LINGUAS"\
10244N/A | tr " " "\n" \
10244N/A | env LC_ALL=C LANG=C sort \
10244N/A | uniq \
10244N/A | tr "\n" " "`
10244N/A
10244N/A SAVE_COMMENT=`grep "^#" po/LINGUAS`
10244N/A echo "$SAVE_COMMENT" > po/LINGUAS
10244N/A echo "$PO_LINGUAS" >> po/LINGUAS
10244N/A}
10244N/A
10244N/Aapply_sun_all_linguas_configure () {
4455N/A ALL_LINGUAS=`grep '^ALL_LINGUAS=' $CONFIGURE \
4455N/A | sed -e 's/ALL_LINGUAS=//' -e 's/"//g'`
4455N/A ALL_LINGUAS=`echo "${ALL_LINGUAS} ${SUN_ALL_LINGUAS}"\
4455N/A | tr " " "\n" \
4455N/A | sort \
4455N/A | uniq \
4455N/A | tr "\n" " "`
4455N/A
4455N/A DQ='"'
4455N/A sed -e "/^ALL_LINGUAS=/s/^\(ALL_LINGUAS=\)\(.*\)/\1$DQ${ALL_LINGUAS}$DQ/" \
4455N/A $CONFIGURE > ${CONFIGURE}.chg
4455N/A mv ${CONFIGURE}.chg $CONFIGURE
4455N/A}
4455N/A
10244N/Aapply_sun_all_linguas () {
10244N/A if [ -f po/LINGUAS ] ; then
10244N/A apply_sun_all_linguas_file
10244N/A else
10244N/A apply_sun_all_linguas_configure
10244N/A fi
10244N/A}
10244N/A
4455N/Aupdate_po () {
4455N/A PO_DIRS=po*/POTFILES.in
4466N/A PO_DIRS=`echo $PO_DIRS | sed -e 's|/POTFILES.in||g'`
4455N/A
4455N/A for po in $PO_DIRS
4455N/A do
4455N/A#
4455N/A# This is needed to avoid build errors.
4455N/A#
4455N/A (cd $po; touch `echo "$SUN_ALL_LINGUAS" | sed -e 's/\([a-z,_,A-Z]*\)/\1.po/g'`)
4455N/A done
4455N/A}
4455N/A
4455N/Aupdate_pot () {
4455N/A OS=`uname -s`
4455N/A if [ "$OS" = Linux ] ; then
4455N/A TOPDIR=/usr/src/packages
4455N/A else
4455N/A TOPDIR=/jds/packages
4455N/A fi
4455N/A POT_DATA='"POT-Creation-Date: '
4455N/A
4455N/A cd po
4455N/A rm -f *.pot
4455N/A echo "[encoding: UTF-8]" > POTFILES.in
4455N/A intltool-update --maintain 2>/dev/null
4455N/A cat missing >> POTFILES.in
4455N/A intltool-update --pot
4455N/A POT=`ls *.pot`
4455N/A if [ "x$POT" != "x" ] ; then
4455N/A sed -e "/^$POT_DATA/d" $POT > ${POT}.$$
4455N/A mv ${POT}.$$ $POT
4455N/A mkdir -p $TOPDIR/l10n/pot
4455N/A mkdir -p $TOPDIR/l10n/diff
4455N/A mkdir -p $TOPDIR/l10n/new
4455N/A if [ -f $TOPDIR/l10n/pot/$POT ] ; then
4455N/A diff $TOPDIR/l10n/pot/$POT $POT > ${POT}.diff
4455N/A if [ -s ${POT}.diff ] ; then
4455N/A cp ${POT}.diff $TOPDIR/l10n/diff
4455N/A echo "#### Translation should be updated!!!"
4455N/A fi
4455N/A else
4455N/A cp $POT $TOPDIR/l10n/pot
4455N/A cp $POT $TOPDIR/l10n/new
4455N/A fi
4455N/A else
4455N/A echo "#### Failed to create the potfile in `pwd`"
4455N/A fi
4455N/A cd ..
4455N/A}
4455N/A
4455N/Amain () {
10244N/A init $@
4455N/A pre_check
4455N/A
10244N/A if [ $DISABLE_GNU_EXTENSIONS -eq 1 ] ; then
10244N/A disable_gnu_extensions
10244N/A fi
10244N/A if [ $ENABLE_SUN_ALL_LINGUAS -eq 1 ] ; then
10244N/A apply_sun_all_linguas
10244N/A update_po
10244N/A fi
4455N/A if [ "x$L10N_POTFILES" = "xyes" ] ; then
4455N/A update_pot
4455N/A fi
4455N/A}
4455N/A
10244N/Amain $@