1#! /bin/sh 2. "${srcdir=.}/init.sh"; path_prepend_ . ../src 3 4# Test of gettext facilities in the Vala language. 5# Assumes an fr_FR locale is installed. 6# Assumes the following packages are installed: vala. 7 8cat <<\EOF > prog.vala 9int main (string[] args) { 10 Intl.setlocale (LocaleCategory.ALL, ""); 11 Intl.textdomain ("prog"); 12 Intl.bindtextdomain ("prog", "."); 13 stdout.printf ("%s\n", _("'Your command, please?', asked the waiter.")); 14 stdout.printf ("%s\n", _("%s is replaced by %s.").printf ("FF", "EUR")); 15 return 0; 16} 17EOF 18 19# Test for presence of valac. 20(valac --version) >/dev/null 2>/dev/null 21test $? -le 1 \ 22 || { echo "Skipping test: valac not found"; Exit 77; } 23 24: ${VALAC=valac} 25${VALAC} --Xcc=-DGETTEXT_PACKAGE=\"prog\" prog.vala 2>prog.err \ 26 || { cat prog.err 1>&2; Exit 1; } 27 28: ${XGETTEXT=xgettext} 29${XGETTEXT} -o prog.tmp --omit-header --no-location prog.vala || Exit 1 30LC_ALL=C tr -d '\r' < prog.tmp > prog.pot || Exit 1 31 32cat <<EOF > prog.ok 33msgid "'Your command, please?', asked the waiter." 34msgstr "" 35 36#, c-format 37msgid "%s is replaced by %s." 38msgstr "" 39EOF 40 41: ${DIFF=diff} 42${DIFF} prog.ok prog.pot || Exit 1 43 44cat <<\EOF > fr.po 45msgid "" 46msgstr "Content-Type: text/plain; charset=ISO-8859-1\n" 47 48msgid "'Your command, please?', asked the waiter." 49msgstr "�Votre commande, s'il vous plait�, dit le gar�on." 50 51# Reverse the arguments. 52#, c-format 53msgid "%s is replaced by %s." 54msgstr "%2$s remplace %1$s." 55EOF 56 57: ${MSGMERGE=msgmerge} 58${MSGMERGE} -q -o fr.po.tmp fr.po prog.pot || Exit 1 59LC_ALL=C tr -d '\r' < fr.po.tmp > fr.po.new || Exit 1 60 61: ${DIFF=diff} 62${DIFF} fr.po fr.po.new || Exit 1 63 64test -d fr || mkdir fr 65test -d fr/LC_MESSAGES || mkdir fr/LC_MESSAGES 66 67: ${MSGFMT=msgfmt} 68${MSGFMT} -o fr/LC_MESSAGES/prog.mo fr.po 69 70: ${DIFF=diff} 71cat <<\EOF > prog.ok 72�Votre commande, s'il vous plait�, dit le gar�on. 73EUR remplace FF. 74EOF 75cat <<\EOF > prog.oku 76«Votre commande, s'il vous plait», dit le garçon. 77EUR remplace FF. 78EOF 79 80: ${LOCALE_FR=fr_FR} 81: ${LOCALE_FR_UTF8=fr_FR.UTF-8} 82if test $LOCALE_FR != none; then 83 prepare_locale_ fr $LOCALE_FR 84 LANGUAGE= LC_ALL=$LOCALE_FR ./prog > prog.out 85 case $? in 86 0) ${DIFF} prog.ok prog.out || Exit 1;; 87 77) LOCALE_FR=none;; 88 *) Exit 1;; 89 esac 90fi 91if test $LOCALE_FR_UTF8 != none; then 92 prepare_locale_ fr $LOCALE_FR_UTF8 93 LANGUAGE= LC_ALL=$LOCALE_FR_UTF8 ./prog > prog.out 94 case $? in 95 0) ${DIFF} prog.oku prog.out || Exit 1;; 96 77) LOCALE_FR_UTF8=none;; 97 *) Exit 1;; 98 esac 99fi 100if test $LOCALE_FR = none && test $LOCALE_FR_UTF8 = none; then 101 if test -f /usr/bin/localedef; then 102 echo "Skipping test: no french locale is installed" 103 else 104 echo "Skipping test: no french locale is supported" 105 fi 106 Exit 77 107fi 108 109Exit 0 110