diff options
author | Andreas Stricker <astricker@futurelab.ch> | 2010-02-23 14:14:09 +0100 |
---|---|---|
committer | Daiki Ueno <ueno@gnu.org> | 2013-04-17 17:51:07 +0900 |
commit | fe8db3b5b44cd23385e3dfccf54249b742d8d994 (patch) | |
tree | 127c653c910e4893b2061c0c1c2d7bae73a1d32b /gettext-tools/tests/lang-javascript | |
parent | 97c6a779339a0de698606eaa42c347bcd027bfea (diff) | |
download | external_gettext-fe8db3b5b44cd23385e3dfccf54249b742d8d994.zip external_gettext-fe8db3b5b44cd23385e3dfccf54249b742d8d994.tar.gz external_gettext-fe8db3b5b44cd23385e3dfccf54249b742d8d994.tar.bz2 |
Support for JavaScript.
Diffstat (limited to 'gettext-tools/tests/lang-javascript')
-rwxr-xr-x | gettext-tools/tests/lang-javascript | 132 |
1 files changed, 132 insertions, 0 deletions
diff --git a/gettext-tools/tests/lang-javascript b/gettext-tools/tests/lang-javascript new file mode 100755 index 0000000..13ea590 --- /dev/null +++ b/gettext-tools/tests/lang-javascript @@ -0,0 +1,132 @@ +#! /bin/sh + +# Test of gettext facilities in the JavaScript language. +# Assumes an fr_FR locale is installed. +# Assumes the following packages are installed: gjs. + +tmpfiles="" +trap 'rm -fr $tmpfiles' 1 2 3 15 + +tmpfiles="$tmpfiles prog.js" +cat <<\EOF > prog.js +const Format = imports.format; +const Gettext = imports.gettext; + +String.prototype.format = Format.format; +const _ = Gettext.gettext; + +Gettext.textdomain ("prog"); +Gettext.bindtextdomain ("prog", "."); +print(_("'Your command, please?', asked the waiter.")); +print(_("%s is replaced by %s.").format("FF", "EUR")); +EOF + +tmpfiles="$tmpfiles prog.tmp prog.pot" +: ${XGETTEXT=xgettext} +${XGETTEXT} -o prog.tmp --omit-header --no-location prog.js +test $? = 0 || { rm -fr $tmpfiles; exit 1; } +LC_ALL=C tr -d '\r' < prog.tmp > prog.pot +test $? = 0 || { rm -fr $tmpfiles; exit 1; } + +tmpfiles="$tmpfiles prog.ok" +cat <<EOF > prog.ok +msgid "'Your command, please?', asked the waiter." +msgstr "" + +#, javascript-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" + +msgid "'Your command, please?', asked the waiter." +msgstr "«Votre commande, s'il vous plait», dit le garçon." + +# Reverse the arguments. +#, javascript-format +msgid "%s is replaced by %s." +msgstr "%s remplace %s." +EOF + +tmpfiles="$tmpfiles fr.po.tmp fr.po.new" +: ${MSGMERGE=msgmerge} +${MSGMERGE} -q -o fr.po.tmp fr.po prog.pot +test $? = 0 || { rm -fr $tmpfiles; exit 1; } +LC_ALL=C tr -d '\r' < fr.po.tmp > fr.po.new +test $? = 0 || { rm -fr $tmpfiles; exit 1; } + +: ${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 gjs. +(gjs -h) >/dev/null 2>/dev/null +test $? -le 1 \ + || { echo "Skipping test: gjs not found"; rm -fr $tmpfiles; exit 77; } + +# Test which of the fr_FR locales are installed. +: ${LOCALE_FR=fr_FR} +: ${LOCALE_FR_UTF8=fr_FR.UTF-8} +if test $LOCALE_FR != none; then + LC_ALL=$LOCALE_FR ./testlocale + case $? in + 0) ;; + 77) LOCALE_FR=none;; + *) exit 1;; + esac +fi +if test $LOCALE_FR_UTF8 != none; then + LC_ALL=$LOCALE_FR_UTF8 ./testlocale + case $? in + 0) ;; + 77) LOCALE_FR_UTF8=none;; + *) exit 1;; + esac +fi +if test $LOCALE_FR = none && test $LOCALE_FR_UTF8 = none; then + if test -f /usr/bin/localedef; then + echo "Skipping test: no french locale is installed" + else + echo "Skipping test: no french locale is supported" + fi + rm -fr $tmpfiles; exit 77 +fi + +tmpfiles="$tmpfiles prog.ok prog.oku prog.out" +: ${DIFF=diff} +cat <<\EOF > prog.ok +«Votre commande, s'il vous plait», dit le garçon. +FF remplace EUR. +EOF +cat <<\EOF > prog.oku +«Votre commande, s'il vous plait», dit le garçon. +FF remplace EUR. +EOF + +: ${LOCALE_FR=fr_FR} +: ${LOCALE_FR_UTF8=fr_FR.UTF-8} +if test $LOCALE_FR != none; then + LANGUAGE= LC_ALL=$LOCALE_FR gjs prog.js > prog.out || exit 1 + ${DIFF} prog.ok prog.out || exit 1 +fi +if test $LOCALE_FR_UTF8 != none; then + LANGUAGE= LC_ALL=$LOCALE_FR_UTF8 gjs prog.js > prog.out || exit 1 + ${DIFF} -u prog.oku prog.out || exit 1 +fi + +rm -fr $tmpfiles + +exit 0 |