diff options
author | Bruno Haible <bruno@clisp.org> | 2002-09-09 11:24:56 +0000 |
---|---|---|
committer | Bruno Haible <bruno@clisp.org> | 2009-06-23 12:08:45 +0200 |
commit | ee63b8d8c9ebf2b406fc32a6f8c88bf56ccd4d98 (patch) | |
tree | a54c5e423e550619c28196d8db8bb01e771db964 /tests | |
parent | aab0c60c3f895ecb561800f931ba695dc6bce1db (diff) | |
download | external_gettext-ee63b8d8c9ebf2b406fc32a6f8c88bf56ccd4d98.zip external_gettext-ee63b8d8c9ebf2b406fc32a6f8c88bf56ccd4d98.tar.gz external_gettext-ee63b8d8c9ebf2b406fc32a6f8c88bf56ccd4d98.tar.bz2 |
Smalltalk support.
Diffstat (limited to 'tests')
-rw-r--r-- | tests/ChangeLog | 5 | ||||
-rw-r--r-- | tests/Makefile.am | 2 | ||||
-rwxr-xr-x | tests/lang-smalltalk | 118 |
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 |