| #!/bin/sh |
| . "${srcdir=.}/init.sh"; path_prepend_ . ../src |
| # |
| # More tests for java support |
| # |
| |
| cat <<\EOF > xg-j-2.java |
| class TestCase { |
| public static void main (String[] args) { |
| // Test recognition of \u escapes: Böse Bübchen |
| gettext ("B\u00f6se B\u00fcbchen"); |
| // Test recognition of \u escapes with different number of u |
| gettext ("Japanese: \uu65e5\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu672c\u8A9e"); |
| // Test recognition of \u escapes when they form UTF-16 surrogates |
| // Here: U+1D49E MATHEMATICAL SCRIPT CAPITAL C |
| gettext ("script \ud835\udc9e = ..."); |
| // Test invalid surrogates. |
| gettext ("invalid surrogate \ud835 first half"); |
| gettext ("invalid surrogate \udc9e second half"); |
| // Don't let the line numbers be confused by \u newlines. |
| \u000a \u000d \u000d\u000a |
| gettext ("embedded\nnewline"); |
| // Spaces from end of comment are removed. \u000agettext("dummy"); |
| // Various ways to write a backslash are equivalent. |
| gettext ("\u005c\u005c"); |
| gettext ("\u005c\"); |
| gettext ("\\u005c"); |
| gettext ("\\"); |
| gettext ("\134"); |
| // Escape sequences in strings. |
| gettext ("t -> \t, b -> \b, n -> \n, dquote -> \", squote -> \' ..."); |
| // Octal escapes have 2 or 3 digits, depending on the initial digit. |
| gettext ("bel: \7\nnewline: \12backslash: \134\ndquote-zero: \420\n"); |
| // Hex escapes are not recognized |
| gettext ("no bel: \x07\n"); |
| gettext // Recognized despite comments |
| ( /* Even across multiline |
| comment! */ "this is a single " /* now comes the concatenation! */ + // after + |
| "long line"); |
| // Character literals are not extracted. |
| gettext ('x'); |
| // Invalid concatenations are not concatenated. |
| gettext ("fooba"+'r'); |
| // Verify that the static function name has priority. |
| GettextResource.gettext("NOT extracted", "this one is extracted"); |
| // Verify that a comma inside braces is hidden. |
| GettextResource.gettext( |
| new Object() { |
| public int foo () { |
| return 5, 8; |
| } |
| }, |
| "this is the second argument"); |
| // Text blocks are extracted. |
| gettext (""" |
| a one-liner block """); |
| gettext (""" |
| ibam forte via sacra sicut meus est mos |
| nescio quid meditans nugarum totus in illis |
| |
| accurrit quidam notus mihi nomine tantum |
| arreptaque manu "quid agis, dulcissime rerum?" |
| """); |
| gettext (""" |
| \"""a text block in a text block\""" """); |
| gettext (""" |
| testing mixed ASCII and Unicode whitespace |
| \u0020 line 2 |
| \u0020line 3 |
| \u0020line 4 |
| and trailing whitespace |
| as well \u0020 |
| also in the last line\u0020""" |
| ); |
| } |
| } |
| EOF |
| |
| : ${XGETTEXT=xgettext} |
| ${XGETTEXT} --from-code=ISO-8859-1 -c -o xg-j-2.tmp xg-j-2.java 2>/dev/null || Exit 1 |
| func_filter_POT_Creation_Date xg-j-2.tmp xg-j-2.pot |
| |
| cat <<\EOF > xg-j-2.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" |
| |
| #. Test recognition of \u escapes: Böse Bübchen |
| #: xg-j-2.java:4 |
| msgid "Böse Bübchen" |
| msgstr "" |
| |
| #. Test recognition of \u escapes with different number of u |
| #: xg-j-2.java:6 |
| msgid "Japanese: æ¥æ¬èª" |
| msgstr "" |
| |
| #. Test recognition of \u escapes when they form UTF-16 surrogates |
| #. Here: U+1D49E MATHEMATICAL SCRIPT CAPITAL C |
| #: xg-j-2.java:9 |
| msgid "script ð = ..." |
| msgstr "" |
| |
| #. Test invalid surrogates. |
| #: xg-j-2.java:11 |
| msgid "invalid surrogate � first half" |
| msgstr "" |
| |
| #: xg-j-2.java:12 |
| msgid "invalid surrogate � second half" |
| msgstr "" |
| |
| #. Don't let the line numbers be confused by \u newlines. |
| #: xg-j-2.java:15 |
| msgid "" |
| "embedded\n" |
| "newline" |
| msgstr "" |
| |
| #. Spaces from end of comment are removed. |
| #: xg-j-2.java:16 |
| msgid "dummy" |
| msgstr "" |
| |
| #. Various ways to write a backslash are equivalent. |
| #: xg-j-2.java:18 xg-j-2.java:19 xg-j-2.java:20 xg-j-2.java:21 xg-j-2.java:22 |
| msgid "\\" |
| msgstr "" |
| |
| #. Escape sequences in strings. |
| #: xg-j-2.java:24 |
| msgid "" |
| "t -> \t, b -> \b, n -> \n" |
| ", dquote -> \", squote -> ' ..." |
| msgstr "" |
| |
| #. Octal escapes have 2 or 3 digits, depending on the initial digit. |
| #: xg-j-2.java:26 |
| msgid "" |
| "bel: \a\n" |
| "newline: \n" |
| "backslash: \\\n" |
| "dquote-zero: \"0\n" |
| msgstr "" |
| |
| #. Hex escapes are not recognized |
| #: xg-j-2.java:28 |
| msgid "no bel: \\x07\n" |
| msgstr "" |
| |
| #. Recognized despite comments |
| #. Even across multiline |
| #. comment! |
| #: xg-j-2.java:31 |
| msgid "this is a single long line" |
| msgstr "" |
| |
| #. Invalid concatenations are not concatenated. |
| #: xg-j-2.java:36 |
| msgid "fooba" |
| msgstr "" |
| |
| #. Verify that the static function name has priority. |
| #: xg-j-2.java:38 |
| msgid "this one is extracted" |
| msgstr "" |
| |
| #: xg-j-2.java:46 |
| msgid "this is the second argument" |
| msgstr "" |
| |
| #. Text blocks are extracted. |
| #: xg-j-2.java:48 |
| msgid "a one-liner block" |
| msgstr "" |
| |
| #: xg-j-2.java:50 |
| msgid "" |
| "ibam forte via sacra sicut meus est mos\n" |
| "nescio quid meditans nugarum totus in illis\n" |
| "\n" |
| "accurrit quidam notus mihi nomine tantum\n" |
| "arreptaque manu \"quid agis, dulcissime rerum?\"\n" |
| msgstr "" |
| |
| #: xg-j-2.java:57 |
| msgid "\"\"\"a text block in a text block\"\"\"" |
| msgstr "" |
| |
| #: xg-j-2.java:59 |
| msgid "" |
| "testing mixed ASCII and Unicode whitespace\n" |
| "line 2\n" |
| "line 3\n" |
| " line 4\n" |
| "and trailing whitespace\n" |
| "as well\n" |
| "also in the last line" |
| msgstr "" |
| EOF |
| |
| : ${DIFF=diff} |
| ${DIFF} xg-j-2.ok xg-j-2.pot |
| result=$? |
| |
| exit $result |