| #! /bin/sh |
| . "${srcdir=.}/init.sh"; path_prepend_ . ../src |
| |
| # Test basic functionality, duplicate detection, multiple domains. |
| |
| test -d mf-1 || mkdir mf-1 |
| test -d mf-1/LC_MESSAGES || mkdir mf-1/LC_MESSAGES |
| |
| cat <<EOF > mf-1-module1.po |
| #default domain "messages.mo" |
| msgid "SYS_(C)\n" |
| msgstr "MSGFMT(3) portable message object file compiler\n" |
| "Copyright (C) 1995 Free Software Foundation\n" |
| "Report bugs to <bug-gnu-utils@gnu.org>\n" |
| msgid "msg 1" |
| msgstr "msg 1 translation" |
| # |
| domain "help_dom" |
| msgid "help 2 %d" |
| msgstr "help 2 translation" |
| # |
| domain "error_dom" |
| msgid "error 3" |
| msgstr "error 3 translation" |
| EOF |
| |
| cat <<EOF > mf-1-module2.po |
| # --- |
| #default domain "messages.mo" |
| msgid "mesg 4" |
| msgstr "mesg 4 translation" |
| # |
| domain "error_dom" |
| msgid "error 3" |
| msgstr "alternate error 3 translation" |
| msgid "error 5" |
| msgstr "error 5 translation" |
| # |
| domain "window_dom" |
| msgid "window 6" |
| msgstr "window 6 translation" |
| EOF |
| |
| # Without use of msgcat, expect a "duplicate message definition" error. |
| : ${MSGFMT=msgfmt} |
| if ${MSGFMT} -o mf-1/LC_MESSAGES/gen.mo mf-1-module1.po mf-1-module2.po 2> /dev/null; then |
| Exit 1 |
| fi |
| |
| # With msgcat, it should work. |
| : ${MSGCAT=msgcat} ${MSGFMT=msgfmt} |
| ${MSGCAT} --use-first -o mf-1-modules.po mf-1-module1.po mf-1-module2.po || Exit 1 |
| ${MSGFMT} -o mf-1/LC_MESSAGES/gen.mo mf-1-modules.po || Exit 1 |
| |
| : ${GETTEXT=gettext} |
| TEXTDOMAINDIR=. LANGUAGE=mf-1 \ |
| ${GETTEXT} --env LC_ALL=en gen 'SYS_(C) |
| ' | LC_ALL=C tr -d '\r' > mf-test1.out |
| |
| cat <<EOF > gtmf-test1.ok |
| MSGFMT(3) portable message object file compiler |
| Copyright (C) 1995 Free Software Foundation |
| Report bugs to <bug-gnu-utils@gnu.org> |
| EOF |
| |
| : ${DIFF=diff} |
| ${DIFF} gtmf-test1.ok mf-test1.out |
| result=$? |
| |
| exit $result |