| #!/bin/sh |
| . "${srcdir=.}/init.sh"; path_prepend_ . ../src |
| |
| # Test of Vala support. |
| |
| : ${XGETTEXT=xgettext} |
| |
| cat <<\EOF > xg-vala-1.err.vala |
| int main (string[] args) { |
| var r1 = /a |
| EOF |
| |
| (LANGUAGE= LC_ALL=C ${XGETTEXT} --no-location -o - xg-vala-1.err.vala 2>&1; exit) | grep 'regular expression literal terminated too early' || Exit 1 |
| |
| cat <<\EOF > xg-vala-1.vala |
| int main (string[] args) { |
| var s1 = "Simple string, " + " no gettext needed"; |
| var c1 = '\''; |
| var empty = ""; |
| // This is a C++ style comment |
| var s2 = _("Extract this first string"); |
| var s3 = "Prefix _(" + _("Extract this second string") + ") Postfix"; |
| |
| var empty_verbatim = """"""; |
| if (args[0] == _("Extract this thirth string")) { |
| /* _("This is a comment and must not be extracted!") */ |
| } |
| |
| var s4 = _("""Extract this |
| ""\t\a |
| fourth string"""); |
| |
| var s5 = _("Extract this \u2464th string"); |
| |
| var s6 = /_("This is a regex literal and must not be extracted!")\|/i; |
| |
| var i1 = 1000; |
| i1 = 1 + /_("Regex literal after '+'")/.get_capture_count (); |
| i1 = 1 - /_("Regex literal after '-'")/.get_capture_count (); |
| i1 = 1 & /_("Regex literal after '-'")/.get_capture_count (); |
| i1 = 1 ^ /_("Regex literal after '^'")/.get_capture_count (); |
| if (1 < /_("Regex literal after '<'")/.get_capture_count ()) |
| return 1; |
| if (1 <= /_("Regex literal after '<='")/.get_capture_count ()) |
| return 1; |
| if (1 != /_("Regex literal after '!='")/.get_capture_count ()) |
| return 1; |
| if (! /_("Regex literal after '!'")/.match(s1)) |
| return 1; |
| if (true && /_("Regex literal after '&&'")/.match(s1)) |
| return 1; |
| if (false || /_("Regex literal after '||'")/.match(s1)) |
| return 1; |
| |
| var r1 = true ? /_("Regex literal after '?'")/ : |
| /_("Regex literal after ':'")/; |
| var r2 = true ?? /_("Regex literal after '??'")/; |
| i1 += 1 << /_("Regex literal after '+='")/.get_capture_count (); |
| i1 *= /_("Regex literal after '*='")/.get_capture_count (); |
| i1 /= /_("Regex literal after '/='")/.get_capture_count (); |
| i1 %= /_("Regex literal after '%='")/.get_capture_count (); |
| i1 <<= /_("Regex literal after '<<='")/.get_capture_count (); |
| i1 |= /_("Regex literal after '|='")/.get_capture_count (); |
| |
| i1++; |
| i1--; |
| i1 = i1 / i1; |
| GLib.Timeout.add (10, () => { return false; }); |
| |
| var d1 = 10e-1; |
| var d2 = 10E-1; |
| |
| /* This is a |
| multiline C style comment */ |
| var s7 = _("Extract this //sixth string"); |
| |
| var s8 = _(@"This is a template string, which cannot be extracted!"); |
| |
| /* /= shouldn't start a regex literal */ |
| var i5 = 1000; |
| i5 /= 10; |
| |
| return 0; |
| } |
| |
| class Foo : Object { |
| // @ isn't always followed by a template string. |
| public static Foo @new (void) { |
| return null; |
| } |
| } |
| EOF |
| |
| ${XGETTEXT} --add-comments --no-location -o xg-vala-1.tmp xg-vala-1.vala 2>xg-vala-1.err |
| test $? = 0 || { cat xg-vala-1.err; Exit 1; } |
| func_filter_POT_Creation_Date xg-vala-1.tmp xg-vala-1.pot |
| |
| cat <<\EOF > xg-vala-1.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" |
| |
| #. This is a C++ style comment |
| msgid "Extract this first string" |
| msgstr "" |
| |
| msgid "Extract this second string" |
| msgstr "" |
| |
| msgid "Extract this thirth string" |
| msgstr "" |
| |
| msgid "" |
| "Extract this\n" |
| " \"\"\\t\\a\n" |
| " fourth string" |
| msgstr "" |
| |
| msgid "Extract this ⑤th string" |
| msgstr "" |
| |
| #. This is a |
| #. multiline C style comment |
| msgid "Extract this //sixth string" |
| msgstr "" |
| EOF |
| |
| : ${DIFF=diff} |
| ${DIFF} xg-vala-1.ok xg-vala-1.pot |
| result=$? |
| test $result = 0 || exit $result |
| |
| # Test --extract-all option. |
| ${XGETTEXT} --extract-all --add-comments --no-location -o xg-vala-1.tmp xg-vala-1.vala 2>xg-vala-1.err |
| test $? = 0 || { cat xg-vala-1.err; Exit 1; } |
| func_filter_POT_Creation_Date xg-vala-1.tmp xg-vala-1.pot |
| |
| cat <<\EOF > xg-vala-1.all.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" |
| |
| msgid "Simple string, no gettext needed" |
| msgstr "" |
| |
| #. This is a C++ style comment |
| msgid "Extract this first string" |
| msgstr "" |
| |
| msgid "Prefix _(" |
| msgstr "" |
| |
| msgid "Extract this second string" |
| msgstr "" |
| |
| msgid ") Postfix" |
| msgstr "" |
| |
| msgid "Extract this thirth string" |
| msgstr "" |
| |
| msgid "" |
| "Extract this\n" |
| " \"\"\\t\\a\n" |
| " fourth string" |
| msgstr "" |
| |
| msgid "Extract this ⑤th string" |
| msgstr "" |
| |
| #. This is a |
| #. multiline C style comment |
| msgid "Extract this //sixth string" |
| msgstr "" |
| EOF |
| |
| ${DIFF} xg-vala-1.all.ok xg-vala-1.pot |
| result=$? |
| test $result = 0 || exit $result |