| #! /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 |