1#! /bin/sh 2. "${srcdir=.}/init.sh"; path_prepend_ . ../src 3 4: ${XGETTEXT=xgettext} 5${XGETTEXT} -o plural-1-cake.tmp --omit-header --no-location "$wabs_srcdir"/plural-1-prg.c || Exit 1 6LC_ALL=C tr -d '\r' < plural-1-cake.tmp > plural-1-cake.pot || Exit 1 7 8cat <<EOF > plural-1-cake.ok 9#, c-format 10msgid "a piece of cake" 11msgid_plural "%d pieces of cake" 12msgstr[0] "" 13msgstr[1] "" 14EOF 15 16: ${DIFF=diff} 17${DIFF} plural-1-cake.ok plural-1-cake.pot || Exit 1 18 19cat <<EOF > plural-1-fr.po 20# Les gateaux allemands sont les meilleurs du monde. 21#, c-format 22msgid "a piece of cake" 23msgid_plural "%d pieces of cake" 24msgstr[0] "un morceau de gateau" 25msgstr[1] "%d morceaux de gateau" 26EOF 27 28: ${MSGMERGE=msgmerge} 29${MSGMERGE} -q -o plural-1-fr.po.tmp plural-1-fr.po plural-1-cake.pot || Exit 1 30LC_ALL=C tr -d '\r' < plural-1-fr.po.tmp > plural-1-fr.po.new || Exit 1 31 32: ${DIFF=diff} 33${DIFF} plural-1-fr.po plural-1-fr.po.new || Exit 1 34 35test -d plural-1-dir || mkdir plural-1-dir 36test -d plural-1-dir/fr || mkdir plural-1-dir/fr 37test -d plural-1-dir/fr/LC_MESSAGES || mkdir plural-1-dir/fr/LC_MESSAGES 38 39: ${MSGFMT=msgfmt} 40${MSGFMT} -o plural-1-dir/fr/LC_MESSAGES/cake.mo plural-1-fr.po 41 42: ${MSGUNFMT=msgunfmt} 43${MSGUNFMT} -o plural-1-fr.po.tmp plural-1-dir/fr/LC_MESSAGES/cake.mo || Exit 1 44LC_ALL=C tr -d '\r' < plural-1-fr.po.tmp > plural-1-fr.po.un || Exit 1 45 46sed 1,2d < plural-1-fr.po > plural-1-fr.po.strip 47 48: ${DIFF=diff} 49${DIFF} plural-1-fr.po.strip plural-1-fr.po.un || Exit 1 50 51func_do_test () 52{ 53 echo 'un morceau de gateau' > plural-1-cake.ok 54 LANGUAGE= ../cake "$1" 1 > plural-1-cake.tmp || Exit 1 55 LC_ALL=C tr -d '\r' < plural-1-cake.tmp > cake.out || Exit 1 56 ${DIFF} plural-1-cake.ok cake.out || Exit 1 57 echo '2 morceaux de gateau' > plural-1-cake.ok 58 LANGUAGE= ../cake "$1" 2 > plural-1-cake.tmp || Exit 1 59 LC_ALL=C tr -d '\r' < plural-1-cake.tmp > cake.out || Exit 1 60 ${DIFF} plural-1-cake.ok cake.out || Exit 1 61 echo '10 morceaux de gateau' > plural-1-cake.ok 62 LANGUAGE= ../cake "$1" 10 > plural-1-cake.tmp || Exit 1 63 LC_ALL=C tr -d '\r' < plural-1-cake.tmp > cake.out || Exit 1 64 ${DIFF} plural-1-cake.ok cake.out || Exit 1 65} 66 67if test -z "$USE_SYSTEM_LIBINTL"; then 68 # In the tests/ dir: Rely on a fake setlocale, so that we can exercise 69 # the test on all platforms. 70 71 func_do_test fr 72 73else 74 # In the system-tests/ dir: Don't use a fake setlocale. 75 76 : ${LOCALE_FR=fr_FR} 77 : ${LOCALE_FR_UTF8=fr_FR.UTF-8} 78 if test $LOCALE_FR != none; then 79 prepare_locale_ plural-1-dir/fr plural-1-dir/$LOCALE_FR 80 func_do_test $LOCALE_FR 81 fi 82 if test $LOCALE_FR_UTF8 != none; then 83 prepare_locale_ plural-1-dir/fr plural-1-dir/$LOCALE_FR_UTF8 84 func_do_test $LOCALE_FR_UTF8 85 fi 86 if test $LOCALE_FR = none && test $LOCALE_FR_UTF8 = none; then 87 if test -f /usr/bin/localedef; then 88 echo "Skipping test: no french locale is installed" 89 else 90 echo "Skipping test: no french locale is supported" 91 fi 92 Exit 77 93 fi 94 95fi 96 97Exit 0 98