* Runtime behaviour:
- update-po target in Makefile.in.in now uses msgfmt --previous.
+* Programming languages support:
+ - Perl:
+ o Native support for context functions (pgettext, dpgettext, dcpgettext,
+ npgettext, dnpgettext, dcnpgettext).
+ o better detection of question mark and slash as operators (as opposed
+ to regular expression delimiters).
+
Version 0.19.8 - June 2016
* Support for reproducible builds:
@item gettext/ngettext functions
@code{gettext}, @code{dgettext}, @code{dcgettext}, @code{ngettext},
-@code{dngettext}, @code{dcngettext}
+@code{dngettext}, @code{dcngettext}, @code{pgettext}, @code{dpgettext},
+@code{dcpgettext}, @code{npgettext}, @code{dnpgettext},
+@code{dcnpgettext}
@item textdomain
@code{textdomain} function
platform dependent: gettext_pp emulates, gettext_xs uses GNU gettext
@item Extractor
-@code{xgettext -k__ -k\$__ -k%__ -k__x -k__n:1,2 -k__nx:1,2 -k__xn:1,2 -kN__ -k}
+@code{xgettext -k__ -k\$__ -k%__ -k__x -k__n:1,2 -k__nx:1,2 -k__xn:1,2
+-kN__ -kN__n:1,2 -k__p:1c,2 -k__np:1c,2,3 -kN__p:1c,2 -kN__np:1c,2,3}
@item Formatting with positions
Both kinds of format strings support formatting with positions.
x_perl_keyword ("dngettext:2,3");
x_perl_keyword ("dcngettext:2,3");
x_perl_keyword ("gettext_noop");
+ x_perl_keyword ("pgettext:1c,2");
+ x_perl_keyword ("dpgettext:2c,3");
+ x_perl_keyword ("dcpgettext:2c,3");
+ x_perl_keyword ("npgettext:1c,2,3");
+ x_perl_keyword ("dnpgettext:2c,3,4");
+ x_perl_keyword ("dcnpgettext:2c,3,4");
+
#if 0
x_perl_keyword ("__");
x_perl_keyword ("$__");
void
init_flag_table_perl ()
{
+ /* Gettext binding for Perl. */
xgettext_record_flag ("gettext:1:pass-perl-format");
xgettext_record_flag ("gettext:1:pass-perl-brace-format");
xgettext_record_flag ("%gettext:1:pass-perl-format");
xgettext_record_flag ("dcngettext:3:pass-perl-brace-format");
xgettext_record_flag ("gettext_noop:1:pass-perl-format");
xgettext_record_flag ("gettext_noop:1:pass-perl-brace-format");
+ xgettext_record_flag ("pgettext:2:pass-perl-format");
+ xgettext_record_flag ("pgettext:2:pass-perl-brace-format");
+ xgettext_record_flag ("dpgettext:3:pass-perl-format");
+ xgettext_record_flag ("dpgettext:3:pass-perl-brace-format");
+ xgettext_record_flag ("dcpgettext:3:pass-perl-format");
+ xgettext_record_flag ("dcpgettext:3:pass-perl-brace-format");
+ xgettext_record_flag ("npgettext:2:pass-perl-format");
+ xgettext_record_flag ("npgettext:3:pass-perl-format");
+ xgettext_record_flag ("npgettext:2:pass-perl-brace-format");
+ xgettext_record_flag ("npgettext:3:pass-perl-brace-format");
+ xgettext_record_flag ("dnpgettext:3:pass-perl-format");
+ xgettext_record_flag ("dnpgettext:4:pass-perl-format");
+ xgettext_record_flag ("dnpgettext:3:pass-perl-brace-format");
+ xgettext_record_flag ("dnpgettext:4:pass-perl-brace-format");
+ xgettext_record_flag ("dcnpgettext:3:pass-perl-format");
+ xgettext_record_flag ("dcnpgettext:4:pass-perl-format");
+ xgettext_record_flag ("dcnpgettext:3:pass-perl-brace-format");
+ xgettext_record_flag ("dcnpgettext:4:pass-perl-brace-format");
+
+ /* Perl builtins. */
xgettext_record_flag ("printf:1:perl-format"); /* argument 1 or 2 ?? */
xgettext_record_flag ("sprintf:1:perl-format");
#if 0
+ /* Shortcuts from libintl-perl. */
xgettext_record_flag ("__:1:pass-perl-format");
xgettext_record_flag ("__:1:pass-perl-brace-format");
xgettext_record_flag ("%__:1:pass-perl-format");
print $foo // 'undef';
gettext "After slash-slash";
+pgettext "context", "message",
+dpgettext "my domain", "context", "message";
+dcpgettext "my domain", "context", "message", LC_MESSAGES;
+npgettext "context", "one message", "many messages";
+dnpgettext "my domain", "context", "one message", "many messages";
+dcnpgettext "my domain", "context", "one message", "many messages",
+ LC_MESSAGES;
+
__END__
gettext "Discarded!";
EOF
#: xg-pl-1.pl:140
msgid "After slash-slash"
msgstr ""
+
+#: xg-pl-1.pl:142 xg-pl-1.pl:143 xg-pl-1.pl:144
+msgctxt "context"
+msgid "message"
+msgstr ""
+
+#: xg-pl-1.pl:145 xg-pl-1.pl:146 xg-pl-1.pl:147
+msgctxt "context"
+msgid "one message"
+msgid_plural "many messages"
+msgstr[0] ""
+msgstr[1] ""
EOF
: ${DIFF=diff}