From: Bruno Haible Date: Thu, 6 Oct 2005 11:10:47 +0000 (+0000) Subject: Test for context dependent translations in PO files. X-Git-Tag: v0.15~381 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=50dc67170939aab298df28404d51c7c81e744c48;p=thirdparty%2Fgettext.git Test for context dependent translations in PO files. --- diff --git a/gettext-tools/tests/msgattrib-15 b/gettext-tools/tests/msgattrib-15 new file mode 100755 index 000000000..1f54513f8 --- /dev/null +++ b/gettext-tools/tests/msgattrib-15 @@ -0,0 +1,65 @@ +#! /bin/sh + +# Test msgattrib on a PO file with contexts. + +tmpfiles="" +trap 'rm -fr $tmpfiles' 1 2 3 15 + +tmpfiles="$tmpfiles ma-test15.po" +cat <<\EOF > ma-test15.po +msgid "" +msgstr "" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. A menu item +msgctxt "File|" +msgid "Open" +msgstr "Ouvrir" + +#. A menu item +msgctxt "File|" +msgid "New" +msgstr "Nouveau" + +#. Denote a lock's state +msgctxt "Lock state" +msgid "Open" +msgstr "Ouvert" + +#. Denote a lock's state +msgctxt "Lock state" +msgid "Closed" +msgstr "Fermé" + +#. A product +msgctxt "Audi" +msgid "car" +msgstr "voiture" + +#. A product +msgctxt "Océ" +msgid "copier" +msgstr "photocopieur" + +#~ msgid "Save As" +#~ msgstr "Enregistrer l'as" + +#. A menu item +#~ msgctxt "File|" +#~ msgid "Save As" +#~ msgstr "Enregistrer sous" +EOF + +tmpfiles="$tmpfiles ma-test15.out" +: ${MSGATTRIB=msgattrib} +${MSGATTRIB} --clear-fuzzy ma-test15.po -o ma-test15.out +test $? = 0 || { rm -fr $tmpfiles; exit 1; } + +: ${DIFF=diff} +${DIFF} ma-test15.po ma-test15.out +result=$? + +rm -fr $tmpfiles + +exit $result diff --git a/gettext-tools/tests/msgcat-13 b/gettext-tools/tests/msgcat-13 new file mode 100755 index 000000000..e7ed7b42e --- /dev/null +++ b/gettext-tools/tests/msgcat-13 @@ -0,0 +1,139 @@ +#! /bin/sh + +# Test msgcat on PO files with contexts. + +tmpfiles="" +trap 'rm -fr $tmpfiles' 1 2 3 15 + +tmpfiles="$tmpfiles mcat-test13.in1 mcat-test13.in2" +cat <<\EOF > mcat-test13.in1 +msgid "" +msgstr "" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. A menu item +msgctxt "File|" +msgid "Open" +msgstr "Ouvrir" + +#. A menu item +msgctxt "File|" +msgid "New" +msgstr "Nouveau" + +#. Denote a lock's state +msgctxt "Lock state" +msgid "Open" +msgstr "Ouverte" + +#. Denote a lock's state +msgctxt "Lock state" +msgid "Closed" +msgstr "Fermée" + +#. A menu item +#~ msgctxt "File|" +#~ msgid "Save As" +#~ msgstr "Enregistrer sous" +EOF + +cat <<\EOF > mcat-test13.in2 +msgid "" +msgstr "" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Denote a lock's state +msgctxt "Lock state" +msgid "Open" +msgstr "Ouvert" + +#. Denote a lock's state +msgctxt "Lock state" +msgid "Closed" +msgstr "Fermé" + +#. A product +msgctxt "Audi" +msgid "car" +msgstr "voiture" + +#. A product +msgctxt "Océ" +msgid "copier" +msgstr "photocopieur" + +#~ msgid "Save As" +#~ msgstr "Enregistrer l'as" +EOF + +tmpfiles="$tmpfiles mcat-test13.out" +rm -f mcat-test13.out +: ${MSGCAT=msgcat} +${MSGCAT} -o mcat-test13.out mcat-test13.in1 mcat-test13.in2 +test $? = 0 || { rm -fr $tmpfiles; exit 1; } + +tmpfiles="$tmpfiles mcat-test13.ok" +cat <<\EOF > mcat-test13.ok +msgid "" +msgstr "" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. A menu item +msgctxt "File|" +msgid "Open" +msgstr "Ouvrir" + +#. A menu item +msgctxt "File|" +msgid "New" +msgstr "Nouveau" + +#. Denote a lock's state +#, fuzzy +msgctxt "Lock state" +msgid "Open" +msgstr "" +"#-#-#-#-# mcat-test13.in1 #-#-#-#-#\n" +"Ouverte\n" +"#-#-#-#-# mcat-test13.in2 #-#-#-#-#\n" +"Ouvert" + +#. Denote a lock's state +#, fuzzy +msgctxt "Lock state" +msgid "Closed" +msgstr "" +"#-#-#-#-# mcat-test13.in1 #-#-#-#-#\n" +"Fermée\n" +"#-#-#-#-# mcat-test13.in2 #-#-#-#-#\n" +"Fermé" + +#. A product +msgctxt "Audi" +msgid "car" +msgstr "voiture" + +#. A product +msgctxt "Océ" +msgid "copier" +msgstr "photocopieur" + +#. A menu item +#~ msgctxt "File|" +#~ msgid "Save As" +#~ msgstr "Enregistrer sous" + +#~ msgid "Save As" +#~ msgstr "Enregistrer l'as" +EOF + +: ${DIFF=diff} +${DIFF} mcat-test13.ok mcat-test13.out +result=$? + +rm -fr $tmpfiles + +exit $result diff --git a/gettext-tools/tests/msgcat-14 b/gettext-tools/tests/msgcat-14 new file mode 100755 index 000000000..b6865944c --- /dev/null +++ b/gettext-tools/tests/msgcat-14 @@ -0,0 +1,79 @@ +#! /bin/sh + +# Verify that msgcat complains when it would need to change msgctxts. + +tmpfiles="" +trap 'rm -fr $tmpfiles' 1 2 3 15 + +tmpfiles="$tmpfiles mcat-test14.in1 mcat-test14.in2" +cat <<\EOF > mcat-test14.in1 +msgid "" +msgstr "" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. A menu item +msgctxt "File|" +msgid "Open" +msgstr "Ouvrir" + +#. A menu item +msgctxt "File|" +msgid "New" +msgstr "Nouveau" + +#. Denote a lock's state +msgctxt "Lock state" +msgid "Open" +msgstr "Ouverte" + +#. Denote a lock's state +msgctxt "Lock state" +msgid "Closed" +msgstr "Fermée" + +#. A menu item +#~ msgctxt "File|" +#~ msgid "Save As" +#~ msgstr "Enregistrer sous" +EOF + +cat <<\EOF > mcat-test14.in2 +msgid "" +msgstr "" +"Content-Type: text/plain; charset=ISO-8859-1\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Denote a lock's state +msgctxt "Lock state" +msgid "Open" +msgstr "Ouvert" + +#. Denote a lock's state +msgctxt "Lock state" +msgid "Closed" +msgstr "Fermé" + +#. A product +msgctxt "Audi" +msgid "car" +msgstr "voiture" + +#. A product +msgctxt "Océ" +msgid "copier" +msgstr "photocopieur" + +#~ msgid "Save As" +#~ msgstr "Enregistrer l'as" +EOF + +tmpfiles="$tmpfiles mcat-test14.out" +rm -f mcat-test14.out +: ${MSGCAT=msgcat} +${MSGCAT} -o mcat-test14.out mcat-test14.in1 mcat-test14.in2 2>/dev/null +test $? = 1 || { rm -fr $tmpfiles; exit 1; } + +rm -fr $tmpfiles + +exit 0 diff --git a/gettext-tools/tests/msgcomm-25 b/gettext-tools/tests/msgcomm-25 new file mode 100755 index 000000000..0d3e1c5ba --- /dev/null +++ b/gettext-tools/tests/msgcomm-25 @@ -0,0 +1,128 @@ +#! /bin/sh + +# Test msgcomm on PO files with contexts. + +tmpfiles="" +trap 'rm -fr $tmpfiles' 1 2 3 15 + +tmpfiles="$tmpfiles mcomm-test25.in1 mcomm-test25.in2" +cat <<\EOF > mcomm-test25.in1 +msgid "" +msgstr "" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. A menu item +msgctxt "File|" +msgid "Open" +msgstr "Ouvrir" + +#. A menu item +msgctxt "File|" +msgid "New" +msgstr "Nouveau" + +#. Denote a lock's state +msgctxt "Lock state" +msgid "Open" +msgstr "Ouverte" + +#. Denote a lock's state +msgctxt "Lock state" +msgid "Closed" +msgstr "Fermée" + +#. A menu item +#~ msgctxt "File|" +#~ msgid "Save As" +#~ msgstr "Enregistrer sous" +EOF + +cat <<\EOF > mcomm-test25.in2 +msgid "" +msgstr "" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Denote a lock's state +msgctxt "Lock state" +msgid "Open" +msgstr "Ouvert" + +#. Denote a lock's state +msgctxt "Lock state" +msgid "Closed" +msgstr "Fermé" + +#. A product +msgctxt "Audi" +msgid "car" +msgstr "voiture" + +#. A product +msgctxt "Océ" +msgid "copier" +msgstr "photocopieur" + +#~ msgid "Save As" +#~ msgstr "Enregistrer l'as" +EOF + +tmpfiles="$tmpfiles mcomm-test25.out" +: ${MSGCOMM=msgcomm} +${MSGCOMM} --more-than=0 -o mcomm-test25.out mcomm-test25.in1 mcomm-test25.in2 +test $? = 0 || { rm -fr $tmpfiles; exit 1; } + +tmpfiles="$tmpfiles mcomm-test25.ok" +cat <<\EOF > mcomm-test25.ok +msgid "" +msgstr "" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. A menu item +msgctxt "File|" +msgid "Open" +msgstr "Ouvrir" + +#. A menu item +msgctxt "File|" +msgid "New" +msgstr "Nouveau" + +#. Denote a lock's state +msgctxt "Lock state" +msgid "Open" +msgstr "Ouverte" + +#. Denote a lock's state +msgctxt "Lock state" +msgid "Closed" +msgstr "Fermée" + +#. A product +msgctxt "Audi" +msgid "car" +msgstr "voiture" + +#. A product +msgctxt "Océ" +msgid "copier" +msgstr "photocopieur" + +#. A menu item +#~ msgctxt "File|" +#~ msgid "Save As" +#~ msgstr "Enregistrer sous" + +#~ msgid "Save As" +#~ msgstr "Enregistrer l'as" +EOF + +: ${DIFF=diff} +${DIFF} mcomm-test25.ok mcomm-test25.out +result=$? + +rm -fr $tmpfiles + +exit $result diff --git a/gettext-tools/tests/msgconv-5 b/gettext-tools/tests/msgconv-5 new file mode 100755 index 000000000..2fb9e1ed0 --- /dev/null +++ b/gettext-tools/tests/msgconv-5 @@ -0,0 +1,111 @@ +#! /bin/sh + +# Test msgconv on a PO file with contexts. + +tmpfiles="" +trap 'rm -fr $tmpfiles' 1 2 3 15 + +tmpfiles="$tmpfiles mco-test5.po" +cat <<\EOF > mco-test5.po +msgid "" +msgstr "" +"Content-Type: text/plain; charset=ISO-8859-1\n" +"Content-Transfer-Encoding: 8bit\n" + +#. A menu item +msgctxt "File|" +msgid "Open" +msgstr "Ouvrir" + +#. A menu item +msgctxt "File|" +msgid "New" +msgstr "Nouveau" + +#. Denote a lock's state +msgctxt "Lock state" +msgid "Open" +msgstr "Ouvert" + +#. Denote a lock's state +msgctxt "Lock state" +msgid "Closed" +msgstr "Fermé" + +#. A product +msgctxt "Audi" +msgid "car" +msgstr "voiture" + +#. A product +msgctxt "Océ" +msgid "copier" +msgstr "photocopieur" + +#~ msgid "Save As" +#~ msgstr "Enregistrer l'as" + +#. A menu item +#~ msgctxt "File|" +#~ msgid "Save As" +#~ msgstr "Enregistrer sous" +EOF + +tmpfiles="$tmpfiles mco-test5.out" +: ${MSGCONV=msgconv} +${MSGCONV} --to-code=UTF-8 mco-test5.po -o mco-test5.out +test $? = 0 || { rm -fr $tmpfiles; exit 1; } + +tmpfiles="$tmpfiles mco-test5.ok" +cat <<\EOF > mco-test5.ok +msgid "" +msgstr "" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. A menu item +msgctxt "File|" +msgid "Open" +msgstr "Ouvrir" + +#. A menu item +msgctxt "File|" +msgid "New" +msgstr "Nouveau" + +#. Denote a lock's state +msgctxt "Lock state" +msgid "Open" +msgstr "Ouvert" + +#. Denote a lock's state +msgctxt "Lock state" +msgid "Closed" +msgstr "Fermé" + +#. A product +msgctxt "Audi" +msgid "car" +msgstr "voiture" + +#. A product +msgctxt "Océ" +msgid "copier" +msgstr "photocopieur" + +#~ msgid "Save As" +#~ msgstr "Enregistrer l'as" + +#. A menu item +#~ msgctxt "File|" +#~ msgid "Save As" +#~ msgstr "Enregistrer sous" +EOF + +: ${DIFF=diff} +${DIFF} mco-test5.ok mco-test5.out +result=$? + +rm -fr $tmpfiles + +exit $result diff --git a/gettext-tools/tests/msgen-3 b/gettext-tools/tests/msgen-3 new file mode 100755 index 000000000..2da5439c6 --- /dev/null +++ b/gettext-tools/tests/msgen-3 @@ -0,0 +1,95 @@ +#! /bin/sh + +# Test msgen on a POT file with contexts. + +tmpfiles="" +trap 'rm -fr $tmpfiles' 1 2 3 15 + +tmpfiles="$tmpfiles men-test3.pot" +cat <<\EOF > men-test3.pot +msgid "" +msgstr "" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. A menu item +msgctxt "File|" +msgid "Open" +msgstr "" + +#. A menu item +msgctxt "File|" +msgid "New" +msgstr "" + +#. Denote a lock's state +msgctxt "Lock state" +msgid "Open" +msgstr "" + +#. Denote a lock's state +msgctxt "Lock state" +msgid "Closed" +msgstr "" + +#. A product +msgctxt "Audi" +msgid "car" +msgstr "" + +#. A product +msgctxt "Océ" +msgid "copier" +msgstr "" +EOF + +tmpfiles="$tmpfiles men-test3.out" +: ${MSGEN=msgen} +${MSGEN} men-test3.pot -o men-test3.out +test $? = 0 || { rm -fr $tmpfiles; exit 1; } + +tmpfiles="$tmpfiles men-test3.ok" +cat <<\EOF > men-test3.ok +msgid "" +msgstr "" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. A menu item +msgctxt "File|" +msgid "Open" +msgstr "Open" + +#. A menu item +msgctxt "File|" +msgid "New" +msgstr "New" + +#. Denote a lock's state +msgctxt "Lock state" +msgid "Open" +msgstr "Open" + +#. Denote a lock's state +msgctxt "Lock state" +msgid "Closed" +msgstr "Closed" + +#. A product +msgctxt "Audi" +msgid "car" +msgstr "car" + +#. A product +msgctxt "Océ" +msgid "copier" +msgstr "copier" +EOF + +: ${DIFF=diff} +${DIFF} men-test3.ok men-test3.out +result=$? + +rm -fr $tmpfiles + +exit $result diff --git a/gettext-tools/tests/msgexec-4 b/gettext-tools/tests/msgexec-4 new file mode 100755 index 000000000..e6e4084e3 --- /dev/null +++ b/gettext-tools/tests/msgexec-4 @@ -0,0 +1,131 @@ +#! /bin/sh + +# Test msgexec on a PO file with contexts. + +tmpfiles="" +trap 'rm -fr $tmpfiles' 1 2 3 15 + +tmpfiles="$tmpfiles mex-test4.po" +cat <<\EOF > mex-test4.po +msgid "" +msgstr "" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. A menu item +msgctxt "File|" +msgid "Open" +msgstr "Ouvrir" + +#. A menu item +msgctxt "File|" +msgid "New" +msgstr "Nouveau" + +#. Denote a lock's state +msgctxt "Lock state" +msgid "Open" +msgstr "Ouvert" + +#. Denote a lock's state +msgctxt "Lock state" +msgid "Closed" +msgstr "Fermé" + +#. A product +msgctxt "Audi" +msgid "car" +msgstr "voiture" + +#. A product +msgctxt "Océ" +msgid "copier" +msgstr "photocopieur" + +#~ msgid "Save As" +#~ msgstr "Enregistrer l'as" + +#. A menu item +#~ msgctxt "File|" +#~ msgid "Save As" +#~ msgstr "Enregistrer sous" +EOF + +tmpfiles="$tmpfiles mex-test4.sh" +cat <<\EOF > mex-test4.sh +#! /bin/sh +echo "========================= $MSGEXEC_LOCATION =========================" +if test -n "${MSGEXEC_MSGCTXT+set}"; then + echo "context: $MSGEXEC_MSGCTXT" +fi +cat < mex-test4.out +test $? = 0 || { rm -fr $tmpfiles; exit 1; } + +tmpfiles="$tmpfiles mex-test4.ok" +cat <<\EOF > mex-test4.ok +========================= mex-test4.po:2 ========================= + +--- +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +========================= mex-test4.po:9 ========================= +context: File| +Open +--- +Ouvrir +========================= mex-test4.po:14 ========================= +context: File| +New +--- +Nouveau +========================= mex-test4.po:19 ========================= +context: Lock state +Open +--- +Ouvert +========================= mex-test4.po:24 ========================= +context: Lock state +Closed +--- +Fermé +========================= mex-test4.po:29 ========================= +context: Audi +car +--- +voiture +========================= mex-test4.po:34 ========================= +context: Océ +copier +--- +photocopieur +========================= mex-test4.po:37 ========================= +Save As +--- +Enregistrer l'as +========================= mex-test4.po:42 ========================= +context: File| +Save As +--- +Enregistrer sous +EOF + +: ${DIFF=diff} +${DIFF} mex-test4.ok mex-test4.out +result=$? + +rm -fr $tmpfiles + +exit $result diff --git a/gettext-tools/tests/msgfilter-4 b/gettext-tools/tests/msgfilter-4 new file mode 100755 index 000000000..e25d89202 --- /dev/null +++ b/gettext-tools/tests/msgfilter-4 @@ -0,0 +1,143 @@ +#! /bin/sh + +# Test msgfilter on a PO file with contexts. + +tmpfiles="" +trap 'rm -fr $tmpfiles' 1 2 3 15 + +if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then + # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu. + if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then + ac_n= ac_c=' +' ac_t=' ' + else + ac_n=-n ac_c= ac_t= + fi +else + ac_n= ac_c='\c' ac_t= +fi + +# Some sed programs (Solaris etc.) omit the last line if it ended without +# a newline. We must skip this test when we encounter such a broken sed. +sedoutput=`echo $ac_n "abc$ac_c" | sed -e s/x/x/` +test -n "$sedoutput" || { rm -fr $tmpfiles; exit 77; } + +# Some sed programs (IRIX, OSF/1 etc.) add a newline to the last line if it +# doesn't end with a newline. +sedoutputcount=`echo $ac_n "abc$ac_c" | sed -e s/x/x/ | wc -c` +sedoutputcount=`echo "$sedoutputcount" | sed -e 's/[ ]//g'` +test "$sedoutputcount" = 3 || { rm -fr $tmpfiles; exit 77; } + +tmpfiles="$tmpfiles mfi-test4.po" +cat <<\EOF > mfi-test4.po +msgid "" +msgstr "" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. A menu item +msgctxt "File|" +msgid "Open" +msgstr "Ouvrir" + +#. A menu item +msgctxt "File|" +msgid "New" +msgstr "Nouveau" + +#. Denote a lock's state +msgctxt "Lock state" +msgid "Open" +msgstr "Ouvert" + +#. Denote a lock's state +msgctxt "Lock state" +msgid "Closed" +msgstr "Fermé" + +#. A product +msgctxt "Audi" +msgid "car" +msgstr "voiture" + +#. A product +msgctxt "Océ" +msgid "copier" +msgstr "photocopieur" + +#~ msgid "Save As" +#~ msgstr "Enregistrer l'as" + +#. A menu item +#~ msgctxt "File|" +#~ msgid "Save As" +#~ msgstr "Enregistrer sous" +EOF + +tmpfiles="$tmpfiles mfi-test4.out mfi-test4.err" +: ${MSGFILTER=msgfilter} +sedexpr1='1{ +s/^/\[\[/ +}' +sedexpr2='${ +s/$/\]\]/ +}' +LC_ALL=C \ +${MSGFILTER} -i mfi-test4.po -o mfi-test4.out sed -e "$sedexpr1" -e "$sedexpr2" >mfi-test4.err 2>&1 +result=$? +cat mfi-test4.err | grep -v 'warning: Locale charset' | grep -v '^ ' +test $result = 0 || { rm -fr $tmpfiles; exit 1; } + +tmpfiles="$tmpfiles mfi-test4.ok" +cat <<\EOF > mfi-test4.ok +msgid "" +msgstr "" +"[[Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit]]\n" + +#. A menu item +msgctxt "File|" +msgid "Open" +msgstr "[[Ouvrir]]" + +#. A menu item +msgctxt "File|" +msgid "New" +msgstr "[[Nouveau]]" + +#. Denote a lock's state +msgctxt "Lock state" +msgid "Open" +msgstr "[[Ouvert]]" + +#. Denote a lock's state +msgctxt "Lock state" +msgid "Closed" +msgstr "[[Fermé]]" + +#. A product +msgctxt "Audi" +msgid "car" +msgstr "[[voiture]]" + +#. A product +msgctxt "Océ" +msgid "copier" +msgstr "[[photocopieur]]" + +#~ msgid "Save As" +#~ msgstr "[[Enregistrer l'as]]" + +#. A menu item +#~ msgctxt "File|" +#~ msgid "Save As" +#~ msgstr "[[Enregistrer sous]]" +EOF + +: ${DIFF=diff} +${DIFF} mfi-test4.ok mfi-test4.out +result=$? + +rm -fr $tmpfiles + +exit $result diff --git a/gettext-tools/tests/msgfmt-14 b/gettext-tools/tests/msgfmt-14 new file mode 100755 index 000000000..1b8ca529b --- /dev/null +++ b/gettext-tools/tests/msgfmt-14 @@ -0,0 +1,102 @@ +#! /bin/sh + +# Test msgfmt and msgunfmt on a PO file with contexts. + +tmpfiles="" +trap 'rm -fr $tmpfiles' 1 2 3 15 + +tmpfiles="$tmpfiles mf-14.po" +cat <<\EOF > mf-14.po +msgid "" +msgstr "" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. A menu item +msgctxt "File|" +msgid "Open" +msgstr "Ouvrir" + +#. A menu item +msgctxt "File|" +msgid "New" +msgstr "Nouveau" + +#. Denote a lock's state +msgctxt "Lock state" +msgid "Open" +msgstr "Ouvert" + +#. Denote a lock's state +msgctxt "Lock state" +msgid "Closed" +msgstr "Fermé" + +#. A product +msgctxt "Audi" +msgid "car" +msgstr "voiture" + +#. A product +msgctxt "Océ" +msgid "copier" +msgstr "photocopieur" + +#~ msgid "Save As" +#~ msgstr "Enregistrer l'as" + +#. A menu item +#~ msgctxt "File|" +#~ msgid "Save As" +#~ msgstr "Enregistrer sous" +EOF + +tmpfiles="$tmpfiles mf-14.mo" +: ${MSGFMT=msgfmt} +${MSGFMT} -o mf-14.mo mf-14.po +test $? = 0 || { rm -fr $tmpfiles; exit 1; } + +tmpfiles="$tmpfiles mf-14.out" +: ${MSGUNFMT=msgunfmt} +${MSGUNFMT} mf-14.mo -o mf-14.out +test $? = 0 || { rm -fr $tmpfiles; exit 1; } + +tmpfiles="$tmpfiles mf-14.ok" +cat <<\EOF > mf-14.ok +msgid "" +msgstr "" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +msgctxt "Audi" +msgid "car" +msgstr "voiture" + +msgctxt "File|" +msgid "New" +msgstr "Nouveau" + +msgctxt "File|" +msgid "Open" +msgstr "Ouvrir" + +msgctxt "Lock state" +msgid "Closed" +msgstr "Fermé" + +msgctxt "Lock state" +msgid "Open" +msgstr "Ouvert" + +msgctxt "Océ" +msgid "copier" +msgstr "photocopieur" +EOF + +: ${DIFF=diff} +${DIFF} mf-14.ok mf-14.out +result=$? + +rm -fr $tmpfiles + +exit $result diff --git a/gettext-tools/tests/msgfmt-qt-2 b/gettext-tools/tests/msgfmt-qt-2 new file mode 100755 index 000000000..1c6518b96 --- /dev/null +++ b/gettext-tools/tests/msgfmt-qt-2 @@ -0,0 +1,19 @@ +#! /bin/sh + +# Test msgfmt --qt on a PO file with contexts. + +tmpfiles="" +trap 'rm -fr $tmpfiles' 1 2 3 15 + +tmpfiles="$tmpfiles mf-qt-2.qm" +: ${MSGFMT=msgfmt} +${MSGFMT} --qt ${top_srcdir}/tests/qttest2_de.po -o mf-qt-2.qm +test $? = 0 || { rm -fr $tmpfiles; exit 1; } + +: ${CMP=cmp} +${CMP} ${top_srcdir}/tests/qttest2_de.qm mf-qt-2.qm >/dev/null 2>/dev/null +result=$? + +rm -fr $tmpfiles + +exit $result diff --git a/gettext-tools/tests/msggrep-7 b/gettext-tools/tests/msggrep-7 new file mode 100755 index 000000000..85bcfe632 --- /dev/null +++ b/gettext-tools/tests/msggrep-7 @@ -0,0 +1,89 @@ +#! /bin/sh + +# Test msggrep on a PO file with contexts. + +tmpfiles="" +trap 'rm -fr $tmpfiles' 1 2 3 15 + +tmpfiles="$tmpfiles mg-test7.po" +cat <<\EOF > mg-test7.po +msgid "" +msgstr "" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. A menu item +msgctxt "File|" +msgid "Open" +msgstr "Ouvrir" + +#. A menu item +msgctxt "File|" +msgid "New" +msgstr "Nouveau" + +#. Denote a lock's state +msgctxt "Lock state" +msgid "Open" +msgstr "Ouvert" + +#. Denote a lock's state +msgctxt "Lock state" +msgid "Closed" +msgstr "Fermé" + +#. A product +msgctxt "Audi" +msgid "car" +msgstr "voiture" + +#. A product +msgctxt "Océ" +msgid "copier" +msgstr "photocopieur" + +#~ msgid "Save As" +#~ msgstr "Enregistrer l'as" + +#. A menu item +#~ msgctxt "File|" +#~ msgid "Save As" +#~ msgstr "Enregistrer sous" +EOF + +tmpfiles="$tmpfiles mg-test7.out" +: ${MSGGREP=msggrep} +LC_MESSAGES=C LC_ALL= \ +${MSGGREP} -J -e "File|" mg-test7.po -o mg-test7.out +test $? = 0 || { rm -fr $tmpfiles; exit 1; } + +tmpfiles="$tmpfiles mg-test7.ok" +cat <<\EOF > mg-test7.ok +msgid "" +msgstr "" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. A menu item +msgctxt "File|" +msgid "Open" +msgstr "Ouvrir" + +#. A menu item +msgctxt "File|" +msgid "New" +msgstr "Nouveau" + +#. A menu item +#~ msgctxt "File|" +#~ msgid "Save As" +#~ msgstr "Enregistrer sous" +EOF + +: ${DIFF=diff} +${DIFF} mg-test7.ok mg-test7.out +result=$? + +rm -fr $tmpfiles + +exit $result diff --git a/gettext-tools/tests/msginit-2 b/gettext-tools/tests/msginit-2 new file mode 100755 index 000000000..4fb7b83f0 --- /dev/null +++ b/gettext-tools/tests/msginit-2 @@ -0,0 +1,114 @@ +#! /bin/sh + +# Test msginit on a POT file with contexts. + +tmpfiles="" +trap 'rm -fr $tmpfiles' 1 2 3 15 + +tmpfiles="$tmpfiles mi-test2.pot" +cat <<\EOF > mi-test2.pot +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. A menu item +msgctxt "File|" +msgid "Open" +msgstr "" + +#. A menu item +msgctxt "File|" +msgid "New" +msgstr "" + +#. Denote a lock's state +msgctxt "Lock state" +msgid "Open" +msgstr "" + +#. Denote a lock's state +msgctxt "Lock state" +msgid "Closed" +msgstr "" + +#. A product +msgctxt "Audi" +msgid "car" +msgstr "" + +#. A product +msgctxt "Océ" +msgid "copier" +msgstr "" + +#~ msgid "Save As" +#~ msgstr "" + +#. A menu item +#~ msgctxt "File|" +#~ msgid "Save As" +#~ msgstr "" +EOF + +tmpfiles="$tmpfiles mi-test2.tmp mi-test2.out mi-test2.err" +: ${MSGINIT=msginit} +${MSGINIT} -i mi-test2.pot -l ga_IE --no-translator -o mi-test2.tmp 2>mi-test2.err +test $? = 0 || { cat mi-test2.err 1>&2; rm -fr $tmpfiles; exit 1; } +sed -e '1,15d' < mi-test2.tmp > mi-test2.out +test $? = 0 || { rm -fr $tmpfiles; exit 1; } + +tmpfiles="$tmpfiles mi-test2.ok" +cat <<\EOF > mi-test2.ok +"Plural-Forms: nplurals=3; plural=n==1 ? 0 : n==2 ? 1 : 2;\n" + +#. A menu item +msgctxt "File|" +msgid "Open" +msgstr "" + +#. A menu item +msgctxt "File|" +msgid "New" +msgstr "" + +#. Denote a lock's state +msgctxt "Lock state" +msgid "Open" +msgstr "" + +#. Denote a lock's state +msgctxt "Lock state" +msgid "Closed" +msgstr "" + +#. A product +msgctxt "Audi" +msgid "car" +msgstr "" + +#. A product +msgctxt "Océ" +msgid "copier" +msgstr "" +EOF + +: ${DIFF=diff} +${DIFF} mi-test2.ok mi-test2.out +result=$? + +rm -fr $tmpfiles + +exit $result diff --git a/gettext-tools/tests/msgmerge-18 b/gettext-tools/tests/msgmerge-18 new file mode 100755 index 000000000..016249fe5 --- /dev/null +++ b/gettext-tools/tests/msgmerge-18 @@ -0,0 +1,204 @@ +#! /bin/sh + +# Test msgmerge and msgcmp on a PO file with contexts. + +tmpfiles="" +trap 'rm -fr $tmpfiles' 1 2 3 15 + +tmpfiles="$tmpfiles mm-test18.po" +cat <<\EOF > mm-test18.po +msgid "" +msgstr "" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. A menu item +msgctxt "File|" +msgid "Open" +msgstr "Ouvrir" + +#. A menu item +msgctxt "File|" +msgid "New" +msgstr "Nouveau" + +#. A menu item +msgctxt "File|" +msgid "Save As" +msgstr "Enregistrer sous" + +msgid "Save As" +msgstr "Enregistrer l'as" + +#. Denote a lock's state +msgctxt "Lock state" +msgid "Open" +msgstr "Ouvert" + +#. Denote a lock's state +msgctxt "Lock state" +msgid "Closed" +msgstr "Fermé" + +#. A product +msgctxt "Audi" +msgid "car" +msgstr "voiture" + +#. A product +msgctxt "Océ" +msgid "copier" +msgstr "photocopieur" +EOF + +tmpfiles="$tmpfiles mm-test18.pot" +cat <<\EOF > mm-test18.pot +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. A menu item +msgctxt "File|" +msgid "Open" +msgstr "" + +#. A menu item +msgctxt "File|" +msgid "New" +msgstr "" + +#. A menu item +msgctxt "File|" +msgid "Close" +msgstr "" + +#. Denote a lock's state +msgctxt "Lock state" +msgid "Open" +msgstr "" + +#. Denote a lock's state +msgctxt "Lock state" +msgid "Closed" +msgstr "" + +#. Denote a door's state +msgctxt "Door state" +msgid "Open" +msgstr "" + +#. Denote a door's state +msgctxt "Door state" +msgid "Closed" +msgstr "" + +#. A product +msgctxt "Audi" +msgid "car" +msgstr "" + +#. A product +msgctxt "Océ" +msgid "copier" +msgstr "" +EOF + +: ${MSGCMP=msgcmp} +${MSGCMP} mm-test18.po mm-test18.pot 2>/dev/null +test $? = 1 || { rm -fr $tmpfiles; exit 1; } + +tmpfiles="$tmpfiles mm-test18.new.po" +: ${MSGMERGE=msgmerge} +${MSGMERGE} -q mm-test18.po mm-test18.pot -o mm-test18.new.po +test $? = 0 || { rm -fr $tmpfiles; exit 1; } + +tmpfiles="$tmpfiles mm-test18.ok" +# Note that the fuzzy guess for "Open" in context "Door state" could be either +# "Ouvrir" (from context "File|") or "Ouvert" (from context "Lock state"). +cat <<\EOF > mm-test18.ok +msgid "" +msgstr "" +"Report-Msgid-Bugs-To: \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. A menu item +msgctxt "File|" +msgid "Open" +msgstr "Ouvrir" + +#. A menu item +msgctxt "File|" +msgid "New" +msgstr "Nouveau" + +#. A menu item +#, fuzzy +msgctxt "File|" +msgid "Close" +msgstr "Fermé" + +#. Denote a lock's state +msgctxt "Lock state" +msgid "Open" +msgstr "Ouvert" + +#. Denote a lock's state +msgctxt "Lock state" +msgid "Closed" +msgstr "Fermé" + +#. Denote a door's state +#, fuzzy +msgctxt "Door state" +msgid "Open" +msgstr "Ouvrir" + +#. Denote a door's state +#, fuzzy +msgctxt "Door state" +msgid "Closed" +msgstr "Fermé" + +#. A product +msgctxt "Audi" +msgid "car" +msgstr "voiture" + +#. A product +msgctxt "Océ" +msgid "copier" +msgstr "photocopieur" + +#~ msgctxt "File|" +#~ msgid "Save As" +#~ msgstr "Enregistrer sous" + +#~ msgid "Save As" +#~ msgstr "Enregistrer l'as" +EOF + +: ${DIFF=diff} +${DIFF} mm-test18.ok mm-test18.new.po +test $? = 0 || { rm -fr $tmpfiles; exit 1; } + +: ${MSGCMP=msgcmp} +${MSGCMP} mm-test18.new.po mm-test18.pot +test $? = 0 || { rm -fr $tmpfiles; exit 1; } + +rm -fr $tmpfiles + +exit 0 diff --git a/gettext-tools/tests/msguniq-5 b/gettext-tools/tests/msguniq-5 new file mode 100755 index 000000000..2735fecdf --- /dev/null +++ b/gettext-tools/tests/msguniq-5 @@ -0,0 +1,116 @@ +#! /bin/sh + +# Test msguniq on a PO file with contexts. + +tmpfiles="" +trap 'rm -fr $tmpfiles' 1 2 3 15 + +tmpfiles="$tmpfiles msguniq-5.po" +cat <<\EOF > msguniq-5.po +msgid "" +msgstr "" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. A menu item +msgctxt "File|" +msgid "Open" +msgstr "Ouvrir" + +#. A menu item +msgctxt "File|" +msgid "New" +msgstr "Nouveau" + +#. Denote a lock's state +msgctxt "Lock state" +msgid "Open" +msgstr "Ouvert" + +#. Denote a lock's state +msgctxt "Lock state" +msgid "Closed" +msgstr "Fermé" + +# A verb. +msgctxt "File|" +msgid "Open" +msgstr "" + +#. A product +msgctxt "Audi" +msgid "car" +msgstr "voiture" + +#. A product +msgctxt "Océ" +msgid "copier" +msgstr "photocopieur" + +#~ msgid "Save As" +#~ msgstr "Enregistrer l'as" + +#. A menu item +#~ msgctxt "File|" +#~ msgid "Save As" +#~ msgstr "Enregistrer sous" +EOF + +tmpfiles="$tmpfiles msguniq-5.out" +: ${MSGUNIQ-msguniq} +${MSGUNIQ} msguniq-5.po -o msguniq-5.out +test $? = 0 || { rm -fr $tmpfiles; exit 1; } + +tmpfiles="$tmpfiles msguniq-5.ok" +cat <<\EOF > msguniq-5.ok +msgid "" +msgstr "" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. A menu item +msgctxt "File|" +msgid "Open" +msgstr "Ouvrir" + +#. A menu item +msgctxt "File|" +msgid "New" +msgstr "Nouveau" + +#. Denote a lock's state +msgctxt "Lock state" +msgid "Open" +msgstr "Ouvert" + +#. Denote a lock's state +msgctxt "Lock state" +msgid "Closed" +msgstr "Fermé" + +#. A product +msgctxt "Audi" +msgid "car" +msgstr "voiture" + +#. A product +msgctxt "Océ" +msgid "copier" +msgstr "photocopieur" + +#~ msgid "Save As" +#~ msgstr "Enregistrer l'as" + +#. A menu item +#~ msgctxt "File|" +#~ msgid "Save As" +#~ msgstr "Enregistrer sous" +EOF + +: ${DIFF=diff} +${DIFF} msguniq-5.ok msguniq-5.out +result=$? + +rm -fr $tmpfiles + +exit $result