| #!/bin/sh | |
| . "${srcdir=.}/init.sh"; path_prepend_ . ../src | |
| # Test Python support: --from-code option and encoding recognition. | |
| # Note: This test fails on Linux with musl libc versions that don't support | |
| # the EUC-JP encoding in 'iconv'. | |
| cat <<\EOF > xg-py-3a.py | |
| #!/usr/bin/env python | |
| # TRANSLATORS: Fran«®ois Pinard is a hero. | |
| print gettext.gettext("ÆüËܸì"); | |
| EOF | |
| cat <<\EOF > xg-py-3b.py | |
| #!/usr/bin/env python | |
| # Hey Emacs! -*- coding: euc-jp -*- | |
| # TRANSLATORS: Fran«®ois Pinard is a hero. | |
| print gettext.gettext("ÆüËܸì"); | |
| EOF | |
| cat <<\EOF > xg-py-3u.py | |
| #!/usr/bin/env python | |
| # TRANSLATORS: François Pinard is a hero. | |
| print gettext.gettext("æ¥æ¬èª"); | |
| EOF | |
| cat <<\EOF > xg-py-3.ok | |
| # SOME DESCRIPTIVE TITLE. | |
| # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER | |
| # This file is distributed under the same license as the PACKAGE package. | |
| # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. | |
| # | |
| #, fuzzy | |
| msgid "" | |
| msgstr "" | |
| "Project-Id-Version: PACKAGE VERSION\n" | |
| "Report-Msgid-Bugs-To: \n" | |
| "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" | |
| "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" | |
| "Language-Team: LANGUAGE <LL@li.org>\n" | |
| "Language: \n" | |
| "MIME-Version: 1.0\n" | |
| "Content-Type: text/plain; charset=UTF-8\n" | |
| "Content-Transfer-Encoding: 8bit\n" | |
| #. TRANSLATORS: François Pinard is a hero. | |
| msgid "æ¥æ¬èª" | |
| msgstr "" | |
| EOF | |
| # Verify that if the source file has no magic coding comment, xgettext fails | |
| # if no --from-code option is given but succeeds if it is given. | |
| : ${XGETTEXT=xgettext} | |
| ${XGETTEXT} --add-comments=TRANSLATORS: --no-location \ | |
| -d xg-py-3a xg-py-3a.py > /dev/null 2>&1 | |
| test $? = 1 || { Exit 1; } | |
| ${XGETTEXT} --add-comments=TRANSLATORS: --no-location --from-code=euc-jp \ | |
| -o xg-py-3a.tmp xg-py-3a.py || Exit 1 | |
| func_filter_POT_Creation_Date xg-py-3a.tmp xg-py-3a.pot | |
| : ${DIFF=diff} | |
| ${DIFF} xg-py-3.ok xg-py-3a.pot || Exit 1 | |
| # Verify that if the source file has a magic coding comment, xgettext succeeds. | |
| ${XGETTEXT} --add-comments=TRANSLATORS: --no-location \ | |
| -o xg-py-3b.tmp xg-py-3b.py || Exit 1 | |
| func_filter_POT_Creation_Date xg-py-3b.tmp xg-py-3b.pot | |
| ${DIFF} xg-py-3.ok xg-py-3b.pot || Exit 1 | |
| # Verify that if the source file has no magic coding comment but is UTF-8 | |
| # encoded, xgettext succeeds. (PEP 3120) | |
| ${XGETTEXT} --add-comments=TRANSLATORS: --no-location \ | |
| -o xg-py-3u.tmp xg-py-3u.py || Exit 1 | |
| func_filter_POT_Creation_Date xg-py-3u.tmp xg-py-3u.pot | |
| ${DIFF} xg-py-3.ok xg-py-3u.pot || Exit 1 | |
| # Verify that if the source file has a magic coding comment and a --from-code | |
| # option is given, the magic coding comment takes precedence over it. | |
| ${XGETTEXT} --add-comments=TRANSLATORS: --no-location --from-code=iso-8859-1 \ | |
| -o xg-py-3c.tmp xg-py-3b.py || Exit 1 | |
| func_filter_POT_Creation_Date xg-py-3c.tmp xg-py-3c.pot | |
| ${DIFF} xg-py-3.ok xg-py-3c.pot || Exit 1 | |
| # Verify that backslashes in and second bytes with value 0x5C are correctly | |
| # distinguished in weird encodings like BIG5. | |
| cat <<\EOF > xg-py-3d.py | |
| #!/usr/bin/env python | |
| # Hey Emacs! -*- coding: big5 -*- | |
| print gettext.gettext(u"¬\u0021"); | |
| print gettext.gettext(u"¬\\u0021"); | |
| EOF | |
| ${XGETTEXT} --add-comments=TRANSLATORS: \ | |
| -o xg-py-3d.tmp xg-py-3d.py || Exit 1 | |
| func_filter_POT_Creation_Date xg-py-3d.tmp xg-py-3d.pot | |
| cat <<\EOF > xg-py-3d.ok | |
| # SOME DESCRIPTIVE TITLE. | |
| # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER | |
| # This file is distributed under the same license as the PACKAGE package. | |
| # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. | |
| # | |
| #, fuzzy | |
| msgid "" | |
| msgstr "" | |
| "Project-Id-Version: PACKAGE VERSION\n" | |
| "Report-Msgid-Bugs-To: \n" | |
| "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" | |
| "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" | |
| "Language-Team: LANGUAGE <LL@li.org>\n" | |
| "Language: \n" | |
| "MIME-Version: 1.0\n" | |
| "Content-Type: text/plain; charset=UTF-8\n" | |
| "Content-Transfer-Encoding: 8bit\n" | |
| #: xg-py-3d.py:3 | |
| msgid "æ¯u0021" | |
| msgstr "" | |
| #: xg-py-3d.py:4 | |
| msgid "æ¯!" | |
| msgstr "" | |
| EOF | |
| ${DIFF} xg-py-3d.ok xg-py-3d.pot || Exit 1 | |
| Exit 0 |