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