summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorBruno Haible <bruno@clisp.org>2002-09-09 11:24:56 +0000
committerBruno Haible <bruno@clisp.org>2009-06-23 12:08:45 +0200
commitee63b8d8c9ebf2b406fc32a6f8c88bf56ccd4d98 (patch)
treea54c5e423e550619c28196d8db8bb01e771db964 /tests
parentaab0c60c3f895ecb561800f931ba695dc6bce1db (diff)
downloadexternal_gettext-ee63b8d8c9ebf2b406fc32a6f8c88bf56ccd4d98.zip
external_gettext-ee63b8d8c9ebf2b406fc32a6f8c88bf56ccd4d98.tar.gz
external_gettext-ee63b8d8c9ebf2b406fc32a6f8c88bf56ccd4d98.tar.bz2
Smalltalk support.
Diffstat (limited to 'tests')
-rw-r--r--tests/ChangeLog5
-rw-r--r--tests/Makefile.am2
-rwxr-xr-xtests/lang-smalltalk118
3 files changed, 124 insertions, 1 deletions
diff --git a/tests/ChangeLog b/tests/ChangeLog
index 12a0c5a..96292d0 100644
--- a/tests/ChangeLog
+++ b/tests/ChangeLog
@@ -1,3 +1,8 @@
+2002-09-09 Bruno Haible <bruno@clisp.org>
+
+ * lang-smalltalk: New file.
+ * Makefile.am (TESTS): Add it.
+
2002-08-18 Bruno Haible <bruno@clisp.org>
* format-php-1: New file.
diff --git a/tests/Makefile.am b/tests/Makefile.am
index a7ed94a..649ec7e 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -58,7 +58,7 @@ TESTS = gettext-1 gettext-2 \
format-tcl-1 format-tcl-2 \
format-ycp-1 format-ycp-2 \
plural-1 plural-2 \
- lang-c lang-c++ lang-objc lang-python lang-clisp lang-elisp lang-librep lang-java lang-gawk lang-pascal lang-ycp lang-tcl lang-php lang-po lang-rst \
+ lang-c lang-c++ lang-objc lang-python lang-clisp lang-elisp lang-librep lang-smalltalk lang-java lang-gawk lang-pascal lang-ycp lang-tcl lang-php lang-po lang-rst \
rpath-1a rpath-1b \
rpath-2aaa rpath-2aab rpath-2aac rpath-2aad \
rpath-2aba rpath-2abb rpath-2abc rpath-2abd \
diff --git a/tests/lang-smalltalk b/tests/lang-smalltalk
new file mode 100755
index 0000000..1b39df4
--- /dev/null
+++ b/tests/lang-smalltalk
@@ -0,0 +1,118 @@
+#! /bin/sh
+
+# Test of gettext facilities in the GNU smalltalk language.
+# Assumes an fr_FR locale is installed.
+# Assumes the following packages are installed: smalltalk.
+
+tmpfiles=""
+trap 'rm -fr $tmpfiles' 1 2 3 15
+
+tmpfiles="$tmpfiles prog.st"
+cat <<\EOF > prog.st
+PackageLoader fileInPackage: 'I18N' !
+
+Object subclass: #Main
+ instanceVariableNames: ''
+ classVariableNames: 'NLS'
+ poolDictionaries: ''
+ category: 'Program'
+!
+!Main methodsFor: 'running'!
+run
+ | n |
+ NLS := I18N Locale default messages domain: 'prog' localeDirectory: '.'.
+ n := 2.
+ Transcript showCr:
+ (NLS ? '''Your command, please?'', asked the waiter.').
+ Transcript showCr:
+ ((NLS at: 'a piece of cake' plural: '%1 pieces of cake' with: n) bindWith: n).
+ Transcript showCr:
+ ((NLS ? '%1 is replaced by %2.') bindWith: 'FF' with: 'EUR').!
+!
+
+Main new run!
+EOF
+
+tmpfiles="$tmpfiles prog.pot"
+: ${XGETTEXT=xgettext}
+${XGETTEXT} -o prog.pot --omit-header --no-location prog.st
+
+tmpfiles="$tmpfiles prog.ok"
+cat <<EOF > prog.ok
+msgid "'Your command, please?', asked the waiter."
+msgstr ""
+
+#, smalltalk-format
+msgid "a piece of cake"
+msgid_plural "%1 pieces of cake"
+msgstr[0] ""
+msgstr[1] ""
+
+#, smalltalk-format
+msgid "%1 is replaced by %2."
+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"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+
+msgid "'Your command, please?', asked the waiter."
+msgstr "«Votre commande, s'il vous plait», dit le garçon."
+
+# Les gateaux allemands sont les meilleurs du monde.
+#, smalltalk-format
+msgid "a piece of cake"
+msgid_plural "%1 pieces of cake"
+msgstr[0] "un morceau de gateau"
+msgstr[1] "%1 morceaux de gateau"
+
+# Reverse the arguments.
+#, smalltalk-format
+msgid "%1 is replaced by %2."
+msgstr "%2 remplace %1."
+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 fr"
+test -d fr || mkdir fr
+test -d fr/LC_MESSAGES || mkdir fr/LC_MESSAGES
+
+: ${MSGFMT=msgfmt}
+${MSGFMT} -o fr/LC_MESSAGES/prog.mo fr.po
+
+# Test for presence of gst version 2.0.6 or newer.
+(gst --version) >/dev/null 2>/dev/null \
+ || { echo "SKIP: lang-smalltalk"; rm -fr $tmpfiles; exit 77; }
+case `gst --version | sed -n -e 1p | sed -e 's/^[^0-9]*//'` in
+ 0.* | 1.* | 2.0 | 2.0.[0-5])
+ echo "SKIP: lang-smalltalk"; rm -fr $tmpfiles; exit 77;;
+esac
+
+tmpfiles="$tmpfiles prog.ok prog.out"
+: ${DIFF=diff}
+cat <<\EOF > prog.ok
+Loading package I18N
+«Votre commande, s'il vous plait», dit le garçon.
+2 morceaux de gateau
+EUR remplace FF.
+EOF
+
+LANGUAGE= LC_ALL=fr_FR gst -Q prog.st > prog.out || exit 1
+${DIFF} prog.ok prog.out || exit 1
+
+rm -fr $tmpfiles
+
+exit 0