GNU gettext - News
GNU gettext 0.23 released
Item posted by Bruno Haible <haible> on Sun 01 Dec 2024 02:04:15 PM UTC.
Download from https://ftp.gnu.org/pub/gnu/gettext/gettext-0.23.tar.gz
New in this release:
- Internationalized data formats:
- XML:
- The escaping of characters such as & < > has been changed:
- No escaping is done any more by xgettext, when creating a POT file.
- Instead, extra escaping can be requested for the msgfmt pass, when merging into an XML file.
- The default value of 'escape' in the <gt:escapeRule> was "yes"; now it is "no".
- This means that existing translations of older POT files may no longer fully apply. As a maintainer of a package that has translatable XML files, you need to regenerate the POT file and pass it on to your translators.
- XML schemas for .its and .loc files are now provided.
- The value of the xml:lang attribute, inserted by msgfmt, now conforms to W3C standards.
- 'msgfmt --xml' accept an option --replace-text, that causes the output to be a mono-lingual XML file instead of a multi-lingual XML file.
- xgettext and 'msgfmt --xml' now support DocBook XML files.
- The escaping of characters such as & < > has been changed:
- Desktop: xgettext now produces POT files with correct line numbers.
- XML:
- Programming languages support:
- Python:
- xgettext now assumes source code for Python 3 rather than Python 2. This affects the interpretation of escape sequences in string literals.
- xgettext now recognizes the f-string syntax.
- Scheme:
- xgettext now supports the option '-L Guile' as an alternative to '-L Scheme'. They are nearly equivalent. They differ in the interpretation of escape sequences in string literals: While 'xgettext -L Scheme' assumes the R6RS and R7RS syntax of string literals, 'xgettext -L Guile' assumes the syntax of string literals understood by Guile 2.x and 3.0 (without command-line option '--r6rs' or '--r7rs', and before a '#!r6rs' directive is seen).
- xgettext now recognizes comments of the form '#; <expression>'.
- Java: xgettext now has an improved recognition of format strings when the String.formatted method is used.
- JavaScript:
- xgettext now parses template literals inside JSX correctly.
- xgettext has a new option --tag that customizes the behaviour of tagged template literals.
- C#:
- The build system and tools now also support 'dotnet' (.NET) as C# implementation. In order to declare a preference for 'dotnet' over 'mono', you can use the configure option '--enable-csharp=dotnet'.
- xgettext now recognizes strings with embedded expressions (a.k.a. interpolated strings).
- awk: xgettext now recognizes string concatenation by juxtaposition.
- Smalltalk: xgettext now recognizes the string concatenation operator ','.
- Vala: xgettext now has an improved recognition of format strings when the string.printf method is used.
- Glade: xgettext has improved support for GtkBuilder 4.
- Tcl: With the recently released Tcl 9.0, characters outside the Unicode BMP in Tcl message catalogs (.msg files) will work regardless of the locale's encoding.
- Perl:
- xgettext now reports warnings instead of fatal errors.
- xgettext now recognizes strings with embedded expressions (a.k.a. interpolated strings).
- PHP:
- xgettext now recognizes strings with embedded expressions.
- xgettext now scans Heredoc and Nowdoc strings correctly.
- xgettext now regards the format string directives %E, %F, %g, %G, %h, %H as valid.
- Python:
- Runtime behaviour:
- In the C.UTF-8 locale, like in the C locale, the *gettext() functions now return the msgid untranslated. This is relevant for GNU systems, Linux with musl libc, FreeBSD, NetBSD, OpenBSD, Cygwin, and Android.
- Documentation:
- The section "Preparing Strings" now gives more advice how to deal with string concatenation and strings with embedded expressions.
- xgettext:
- Most of the diagnostics emitted by xgettext are now labelled as "warning" or "error".
- msgmerge:
- The option '--sorted-output' is now deprecated.
- libgettextpo library:
- This library is now multithread-safe.
- The function 'po_message_set_format' now supports resetting a format string mark.
Powered by Savane 3.14-f13d.
Corresponding source code