summaryrefslogtreecommitdiffstats
path: root/gettext-tools/tests/lang-tcl
diff options
context:
space:
mode:
authorBruno Haible <bruno@clisp.org>2003-02-14 14:41:06 +0000
committerBruno Haible <bruno@clisp.org>2009-06-23 12:09:45 +0200
commitc09339c853ef74b557727163773bf6f6487aa50a (patch)
treedabc555f3c505899d898c6a5bdb38055f17e29b0 /gettext-tools/tests/lang-tcl
parent3b2862407d7852ee7a0d2cfff269433dc8d3c79a (diff)
downloadexternal_gettext-c09339c853ef74b557727163773bf6f6487aa50a.zip
external_gettext-c09339c853ef74b557727163773bf6f6487aa50a.tar.gz
external_gettext-c09339c853ef74b557727163773bf6f6487aa50a.tar.bz2
Move tests/lang-tcl to gettext-tools/tests/lang-tcl.
Diffstat (limited to 'gettext-tools/tests/lang-tcl')
-rwxr-xr-xgettext-tools/tests/lang-tcl89
1 files changed, 89 insertions, 0 deletions
diff --git a/gettext-tools/tests/lang-tcl b/gettext-tools/tests/lang-tcl
new file mode 100755
index 0000000..d0171ce
--- /dev/null
+++ b/gettext-tools/tests/lang-tcl
@@ -0,0 +1,89 @@
+#! /bin/sh
+
+# Test of gettext facilities in the Tcl language.
+# Assumes an fr_FR locale is installed.
+# Assumes the following packages are installed: tcl.
+
+tmpfiles=""
+trap 'rm -fr $tmpfiles' 1 2 3 15
+
+tmpfiles="$tmpfiles program.tcl"
+cat <<\EOF > program.tcl
+#!/usr/bin/env tclsh
+package require msgcat
+::msgcat::mcload [file join [file dirname [info script]] msgs]
+proc _ {s} {return [::msgcat::mc $s]}
+puts [_ "'Your command, please?', asked the waiter."]
+puts [format [::msgcat::mc "%s is replaced by %s."] "FF" "EUR"]
+EOF
+
+tmpfiles="$tmpfiles prog.pot"
+: ${XGETTEXT=xgettext}
+${XGETTEXT} -o prog.pot --omit-header -k_ program.tcl
+
+tmpfiles="$tmpfiles prog.ok"
+cat <<EOF > prog.ok
+#: program.tcl:5
+msgid "'Your command, please?', asked the waiter."
+msgstr ""
+
+#: program.tcl:6
+#, tcl-format
+msgid "%s is replaced by %s."
+msgstr ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} prog.ok prog.pot || exit 1
+
+tmpfiles="$tmpfiles fr.po"
+cat <<\EOF > fr.po
+msgid ""
+msgstr "Content-Type: text/plain; charset=ISO-8859-1\n"
+
+#: program.tcl:5
+msgid "'Your command, please?', asked the waiter."
+msgstr "«Votre commande, s'il vous plait», dit le garçon."
+
+# Reverse the arguments.
+#: program.tcl:6
+#, tcl-format
+msgid "%s is replaced by %s."
+msgstr "%2$s remplace %1$s."
+EOF
+
+tmpfiles="$tmpfiles fr.po.new"
+: ${MSGMERGE=msgmerge}
+${MSGMERGE} -q -o fr.po.new fr.po prog.pot
+
+: ${DIFF=diff}
+${DIFF} fr.po fr.po.new || exit 1
+
+tmpfiles="$tmpfiles msgs"
+test -d msgs || mkdir msgs
+
+: ${MSGFMT=msgfmt}
+${MSGFMT} --tcl -d msgs -l fr fr.po || exit 1
+
+# Test for presence of tclsh with msgcat extension.
+tmpfiles="$tmpfiles version.tcl"
+cat <<\EOF > version.tcl
+package require msgcat
+puts $tcl_version
+EOF
+(tclsh version.tcl) >/dev/null 2>/dev/null \
+ || { echo "SKIP: lang-tcl"; rm -fr $tmpfiles; exit 77; }
+
+tmpfiles="$tmpfiles prog.ok prog.out"
+: ${DIFF=diff}
+cat <<\EOF > prog.ok
+«Votre commande, s'il vous plait», dit le garçon.
+EUR remplace FF.
+EOF
+
+LANGUAGE= LANG=fr_FR LC_MESSAGES= LC_ALL= tclsh program.tcl > prog.out || exit 1
+${DIFF} prog.ok prog.out || exit 1
+
+rm -fr $tmpfiles
+
+exit 0