#! /bin/sh . "${srcdir=.}/init.sh"; path_prepend_ . ../src # Test .mo file with many system dependent string pairs. # Cf. format string directives support as in msgfmt-12, format-c-3, # and the 'I' format directive flag as in format-c-5. # This test used to trigger an endless loop in loadmsgcat.c, because # hash_tab_size was too small and the "open addressing" collision resolution # leads to an endless loop when the hash table is full. cat <<\EOF > mf-20.po msgid "" msgstr "Content-Type: text/plain; charset=UTF-8\n" msgid "The trees are green." msgstr "Les arbres sont verts." #, c-format msgid "A meter has %d millimeters." msgstr "Un mètre a %Id millimètres." #, c-format msgid "A pig has %d legs." msgstr "Un cochon a %Id pattes." #, c-format msgid "The French revolution took place in %d." msgstr "La révolution française eut lieu en %Id." #, c-format msgid "Abraham died at the age of %d." msgstr "Abraham mourut à l’âge de %Id ans." #, c-format msgid "Everyone has %d fingers at each hand." msgstr "Chacun a %Id doigts à chaque main." msgid "Sunshine heats." msgstr "Le soleil tape." #, c-format msgid "Most cars have %d wheels." msgstr "La plupart des voitures a %Id roues." #, c-format msgid "The oldest person is %d years old." msgstr "La personne la plus vieille a %Id ans." #, c-format msgid "Cesar tool %d years to conquer Gaul." msgstr "César mit %Id ans à conquérir la Gaule." #, c-format msgid "There are %d pyramids in Egypt." msgstr "Il y a %Id pyramides en Égypte." #, c-format msgid "The number %d causes bad luck." msgstr "Le nombre %Id porte malheur." EOF test -d fr || mkdir fr test -d fr/LC_MESSAGES || mkdir fr/LC_MESSAGES : ${MSGFMT=msgfmt} ${MSGFMT} -o fr/LC_MESSAGES/mf-20.mo mf-20.po || Exit 1 cat < mf-20.ok Le soleil tape. EOF : ${LOCALE_FR=fr_FR} : ${LOCALE_FR_UTF8=fr_FR.UTF-8} : ${GETTEXT=gettext} : ${DIFF=diff} if test $LOCALE_FR != none; then prepare_locale_ fr $LOCALE_FR LC_ALL=$LOCALE_FR LANGUAGE= TEXTDOMAINDIR=. TEXTDOMAIN=mf-20 \ ${GETTEXT} -s 'Sunshine heats.' > mf-20.tmp LC_ALL=C tr -d '\r' < mf-20.tmp > mf-20.out ${DIFF} mf-20.ok mf-20.out || Exit 1 fi if test $LOCALE_FR_UTF8 != none; then prepare_locale_ fr $LOCALE_FR_UTF8 LC_ALL=$LOCALE_FR_UTF8 LANGUAGE= TEXTDOMAINDIR=. TEXTDOMAIN=mf-20 \ ${GETTEXT} -s 'Sunshine heats.' > mf-20.tmp LC_ALL=C tr -d '\r' < mf-20.tmp > mf-20.out ${DIFF} mf-20.ok mf-20.out || Exit 1 fi if test $LOCALE_FR = none && test $LOCALE_FR_UTF8 = none; then if test -f /usr/bin/localedef; then echo "Skipping test: no french locale is installed" else echo "Skipping test: no french locale is supported" fi Exit 77 fi Exit 0