1#! /bin/sh
2. "${srcdir=.}/init.sh"; path_prepend_ . ../src
3
4# Test msgexec on a PO file with plurals.
5
6cat <<\EOF > mex-test5.po
7msgid ""
8msgstr ""
9"Content-Type: text/plain; charset=ASCII\n"
10"Plural-Forms: nplurals=2; plural=(n > 1);\n"
11
12#, c-format
13msgid "'Your command, please?', asked the waiter."
14msgstr "'Votre commande, s'il vous plait', dit le garcon."
15
16# Les gateaux allemands sont les meilleurs du monde.
17#, c-format
18#| msgid "a piece of bread"
19#| msgid_plural "%d pieces of bread"
20msgid "a piece of cake"
21msgid_plural "%d pieces of cake"
22msgstr[0] "un morceau de gateau"
23msgstr[1] "%d morceaux de gateau"
24
25# Reverse the arguments.
26#, c-format
27msgid "%s is replaced by %s."
28msgstr "%2$s remplace %1$s."
29EOF
30
31cat <<\EOF > mex-test5.sh
32#! /bin/sh
33echo "========================= $MSGEXEC_LOCATION =========================" | LC_ALL=C tr -d '\r'
34if test -n "${MSGEXEC_MSGCTXT+set}"; then
35  echo "context: $MSGEXEC_MSGCTXT" | LC_ALL=C tr -d '\r'
36fi
37cat <<MEOF
38$MSGEXEC_MSGID
39$MSGEXEC_MSGID_PLURAL
40$MSGEXEC_PLURAL_FORM
41$MSGEXEC_PREV_MSGID
42$MSGEXEC_PREV_MSGID_PLURAL
43---
44MEOF
45cat
46echo | LC_ALL=C tr -d '\r'
47exit 0
48EOF
49chmod a+x mex-test5.sh
50
51: ${MSGEXEC=msgexec}
52LC_ALL=C \
53${MSGEXEC} -i mex-test5.po ./mex-test5.sh > mex-test5.out 2> mex-test5.err
54result=$?
55cat mex-test5.err | grep -v 'warning: Locale charset' | grep -v '^ '
56test $result = 0 || { Exit 1; }
57
58cat <<\EOF > mex-test5.ok
59========================= mex-test5.po:2 =========================
60
61
62
63
64
65---
66Content-Type: text/plain; charset=ASCII
67Plural-Forms: nplurals=2; plural=(n > 1);
68
69========================= mex-test5.po:8 =========================
70'Your command, please?', asked the waiter.
71
72
73
74
75---
76'Votre commande, s'il vous plait', dit le garcon.
77========================= mex-test5.po:16 =========================
78a piece of cake
79%d pieces of cake
800
81a piece of bread
82%d pieces of bread
83---
84un morceau de gateau
85========================= mex-test5.po:16 =========================
86a piece of cake
87%d pieces of cake
881
89a piece of bread
90%d pieces of bread
91---
92%d morceaux de gateau
93========================= mex-test5.po:22 =========================
94%s is replaced by %s.
95
96
97
98
99---
100%2$s remplace %1$s.
101EOF
102
103: ${DIFF=diff}
104${DIFF} mex-test5.ok mex-test5.out
105result=$?
106
107exit $result
108