1#! /bin/sh 2 3# Test of gettext facilities in the Emacs Lisp language. 4 5tmpfiles="" 6trap 'rm -fr $tmpfiles' 1 2 3 15 7 8tmpfiles="$tmpfiles prog.el" 9cat <<\EOF > prog.el 10(textdomain "prog") 11(bindtextdomain "prog" ".") 12 13(format standard-output "%s\n" (_ "'Your command, please?', asked the waiter.")) 14 15(format standard-output "%s\n" 16 (format nil (_ "%s is replaced by %s.") "FF" "EUR")) 17EOF 18 19tmpfiles="$tmpfiles prog.pot" 20: ${XGETTEXT=xgettext} 21${XGETTEXT} -o prog.pot --omit-header --no-location prog.el 22 23tmpfiles="$tmpfiles prog.ok" 24cat <<EOF > prog.ok 25msgid "'Your command, please?', asked the waiter." 26msgstr "" 27 28#, elisp-format 29msgid "%s is replaced by %s." 30msgstr "" 31EOF 32 33: ${DIFF=diff} 34${DIFF} prog.ok prog.pot || exit 1 35 36tmpfiles="$tmpfiles fr.po" 37cat <<\EOF > fr.po 38msgid "" 39msgstr "" 40"Content-Type: text/plain; charset=ISO-8859-1\n" 41"Plural-Forms: nplurals=2; plural=(n > 1);\n" 42 43msgid "'Your command, please?', asked the waiter." 44msgstr "�Votre commande, s'il vous plait�, dit le gar�on." 45 46# Reverse the arguments. 47#, elisp-format 48msgid "%s is replaced by %s." 49msgstr "%2$s remplace %1$s." 50EOF 51 52tmpfiles="$tmpfiles fr.po.new" 53: ${MSGMERGE=msgmerge} 54${MSGMERGE} -q -o fr.po.new fr.po prog.pot 55 56: ${DIFF=diff} 57${DIFF} fr.po fr.po.new || exit 1 58 59tmpfiles="$tmpfiles fr" 60test -d fr || mkdir fr 61test -d fr/LC_MESSAGES || mkdir fr/LC_MESSAGES 62 63: ${MSGFMT=msgfmt} 64${MSGFMT} -o fr/LC_MESSAGES/prog.mo fr.po 65 66rm -fr $tmpfiles 67 68exit 0 69