[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
gettext-0.23 released [stable]
From: |
Bruno Haible |
Subject: |
gettext-0.23 released [stable] |
Date: |
Sun, 01 Dec 2024 14:56:35 +0100 |
The GNU gettext package contains
* tools for internationalization, enabling a programmer to make their package
"speak" to the users in their specific language,
* tools for localization, enabling a translator to initialize, check, and
review the message translations that they provide for a package,
* runtime libraries; in particular, a libintl library that implements the
C function gettext() portably, in a glibc-compatible way.
It is now available in version 0.23.
==== New in 0.23 ====
# Internationalized data formats:
* XML:
o 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.
o XML schemas for .its and .loc files are now provided.
o The value of the xml:lang attribute, inserted by msgfmt, now conforms
to W3C standards.
o '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.
o xgettext and 'msgfmt --xml' now support DocBook XML files.
* Desktop: xgettext now produces POT files with correct line numbers.
# Programming languages support:
* Python:
o xgettext now assumes source code for Python 3 rather than Python 2.
This affects the interpretation of escape sequences in string literals.
o xgettext now recognizes the f-string syntax.
* Scheme:
o 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).
o 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:
o xgettext now parses template literals inside JSX correctly.
o xgettext has a new option --tag that customizes the behaviour of tagged
template literals.
* C#:
o 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'.
o 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:
o xgettext now reports warnings instead of fatal errors.
o xgettext now recognizes strings with embedded expressions (a.k.a.
interpolated strings).
* PHP:
o xgettext now recognizes strings with embedded expressions.
o xgettext now scans Heredoc and Nowdoc strings correctly.
o xgettext now regards the format string directives %E, %F, %g, %G, %h, %H
as valid.
# 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.
==== Download ====
Here are the compressed sources:
https://ftp.gnu.org/gnu/gettext/gettext-0.23.tar.gz (28MB)
https://ftp.gnu.org/gnu/gettext/gettext-0.23.tar.lz (8.7MB)
https://ftp.gnu.org/gnu/gettext/gettext-0.23.tar.xz (11MB)
Here are the GPG detached signatures:
https://ftp.gnu.org/gnu/gettext/gettext-0.23.tar.gz.sig
https://ftp.gnu.org/gnu/gettext/gettext-0.23.tar.lz.sig
https://ftp.gnu.org/gnu/gettext/gettext-0.23.tar.xz.sig
Use a mirror for higher download bandwidth:
https://www.gnu.org/order/ftp.html
Here are the SHA1 and SHA256 checksums:
File: gettext-0.23.tar.gz
SHA1 sum: c31ae593a7c51f805645914ca206991e072760d9
SHA256 sum: 945dd7002a02dd7108ad0510602e13416b41d327898cf8522201bc6af10907a6
File: gettext-0.23.tar.lz
SHA1 sum: 76a00a8abaf89efc516d9d6fcad4896e06428219
SHA256 sum: 9878994930a8e09f1e3186203b3ff2accb2c4e67ddc6098b2c1e4a74364d3c5a
File: gettext-0.23.tar.xz
SHA1 sum: 150efc2f9922cd4bb7fbb9d5c72ed3b2d1b60e3e
SHA256 sum: bf31a9b6bdf3e364669c7bd9858f97e4a0c408a8d22940c5d4ab638b65460f85
Use a .sig file to verify that the corresponding file (without the
.sig suffix) is intact. First, be sure to download both the .sig file
and the corresponding tarball. Then, run a command like this:
gpg --verify gettext-0.23.tar.gz.sig
The signature should match the fingerprint of the following key:
pub rsa4096 2019-02-12 [SC]
9001 B85A F9E1 B83D F1BD A942 F5BE 8B26 7C6A 406D
uid Bruno Haible (Open Source Development) <bruno@clisp.org>
If that command fails because you don't have the required public key,
or that public key has expired, try the following commands to retrieve
or refresh it, and then rerun the 'gpg --verify' command.
gpg --recv-keys F5BE8B267C6A406D
As a last resort to find the key, you can try the official GNU
keyring:
wget -q https://ftp.gnu.org/gnu/gnu-keyring.gpg
gpg --keyring gnu-keyring.gpg --verify gettext-0.23.tar.gz.sig
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- gettext-0.23 released [stable],
Bruno Haible <=