summaryrefslogtreecommitdiff
path: root/gettext-tools/tests/msgfilter-6
diff options
context:
space:
mode:
Diffstat (limited to 'gettext-tools/tests/msgfilter-6')
-rwxr-xr-xgettext-tools/tests/msgfilter-697
1 files changed, 97 insertions, 0 deletions
diff --git a/gettext-tools/tests/msgfilter-6 b/gettext-tools/tests/msgfilter-6
new file mode 100755
index 0000000..ddf7869
--- /dev/null
+++ b/gettext-tools/tests/msgfilter-6
@@ -0,0 +1,97 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test msgfilter on a PO file with plurals.
+
+cat <<\EOF > mf-test6.po
+msgid ""
+msgstr ""
+"Content-Type: text/plain; charset=ASCII\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+
+#, c-format
+msgid "'Your command, please?', asked the waiter."
+msgstr "'Votre commande, s'il vous plait', dit le garcon."
+
+# Les gateaux allemands sont les meilleurs du monde.
+#, c-format
+#| msgid "a piece of bread"
+#| msgid_plural "%d pieces of bread"
+msgid "a piece of cake"
+msgid_plural "%d pieces of cake"
+msgstr[0] "un morceau de gateau"
+msgstr[1] "%d morceaux de gateau"
+
+# Reverse the arguments.
+#, c-format
+msgid "%s is replaced by %s."
+msgstr "%2$s remplace %1$s."
+EOF
+
+: > mf-test6.tmp
+
+cat <<\EOF > mf-test6.sh
+#! /bin/sh
+echo "========================= $MSGFILTER_LOCATION =========================" >> mf-test6.tmp
+if test -n "${MSGFILTER_MSGCTXT+set}"; then
+ echo "context: $MSGFILTER_MSGCTXT" >> mf-test6.tmp
+fi
+cat >> mf-test6.tmp <<MEOF
+$MSGFILTER_MSGID
+$MSGFILTER_MSGID_PLURAL
+$MSGFILTER_PLURAL_FORM
+$MSGFILTER_PREV_MSGID
+$MSGFILTER_PREV_MSGID_PLURAL
+MEOF
+cat
+EOF
+chmod a+x mf-test6.sh
+
+: ${MSGFILTER=msgfilter}
+LC_ALL=C \
+${MSGFILTER} -i mf-test6.po ./mf-test6.sh >/dev/null 2> mf-test6.err
+result=$?
+
+cat mf-test6.err | grep -v 'warning: Locale charset' | grep -v '^ '
+test $result = 0 || { exit 1; }
+
+LC_ALL=C tr -d '\r' < mf-test6.tmp > mf-test6.out
+
+cat <<\EOF > mf-test6.ok
+========================= mf-test6.po:2 =========================
+
+
+
+
+
+========================= mf-test6.po:8 =========================
+'Your command, please?', asked the waiter.
+
+
+
+
+========================= mf-test6.po:16 =========================
+a piece of cake
+%d pieces of cake
+0
+a piece of bread
+%d pieces of bread
+========================= mf-test6.po:16 =========================
+a piece of cake
+%d pieces of cake
+1
+a piece of bread
+%d pieces of bread
+========================= mf-test6.po:22 =========================
+%s is replaced by %s.
+
+
+
+
+EOF
+
+: ${DIFF=diff}
+${DIFF} mf-test6.ok mf-test6.out
+result=$?
+
+exit $result