1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135
|
#!/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: Franois Pinard is a hero.
print gettext.gettext("ܸ");
EOF
cat <<\EOF > xg-py-3b.py
#!/usr/bin/env python
# Hey Emacs! -*- coding: euc-jp -*-
# TRANSLATORS: Franois 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
|