Preview
Open Original
info-gnu
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
| From: | Bruno Haible |
| Subject: | gettext-1.0 released [stable] |
| Date: | Thu, 29 Jan 2026 03:42:11 +0100 |
The GNU gettext package contains
* tools for internationalization, enabling a programmer to make their p...
info-gnu
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
| From: | Bruno Haible |
| Subject: | gettext-1.0 released [stable] |
| Date: | Thu, 29 Jan 2026 03:42:11 +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 1.0.
==== New in 1.0 ====
# Improvements for maintainers and distributors:
* In a po/ directory, the PO files are now exactly those that the
translators submitted or committed in version control, or a
translation project's daemon committed on behalf of the translators.
They are no longer regularly updated with respect to the POT file
in the same directory.
The advantage for maintainers is that the maintainer may commit the
PO files in version control, without getting
- lots of modified files shown by "git status",
- frequent merge conflicts when merging between branches,
- a voluminous version control history.
The advantage for distributors is that the role of files in a
release tarball are clearer: The PO files are source code, whereas
the POT file and the *.gmo files are generated files.
ATTENTION translators!
Translators who work directly on a package's source code (without
going through a translation project) now need to run "msginit"
before starting work on a PO file.
* A new program 'po-fetch' is provided, that fetches the translated
PO files from a translation project's site on the internet, and
updates the LINGUAS file accordingly.
* In a po/ directory, a new script 'fetch-po' is now added by 'gettextize'.
It provides the standard interface for fetching the translated PO files.
It typically either invokes the 'po-fetch' program or does nothing.
# Improvements for translators:
* msginit:
- When the PO file already exists, 'msginit' now updates it w.r.t. the
POT file, like 'msgmerge' would do. Previously, 'msginit' failed with
an error message in this situation.
* Pretranslation:
- Two new programs, 'msgpre' and 'spit', are provided, that implement
machine translation through a locally installed Large Language Model
(LLM). 'msgpre' applies to an entire PO file, 'spit' to a single
message.
- The documentation has a new chapter "Pretranslation".
# Improvements for maintainers:
* xgettext:
- The refactoring suggestion when a translatable string contains an URL
or email address can now be inhibited through a command-line option
'--no-check=url' or '--no-check=email', or through a comment in the
source code of the form
/* xgettext: no-url-check */
or
/* xgettext: no-email-check */
# Programming languages support:
* OCaml:
- xgettext now supports OCaml.
- 'msgfmt -c' now verifies the syntax of translations of OCaml format
strings.
- A new example 'hello-ocaml' has been added.
* Rust:
- xgettext now recognizes 'gettextrs::gettext' invocations, like 'gettext'
invocations.
# libgettextpo library:
* The function 'po_message_get_format' now supports distinguishing whether
a negative format string mark, such as 'no-c-format', is set or not.
* The new functions
po_message_has_workflow_flag
po_message_set_workflow_flag
po_message_workflow_flags_iterator, po_flag_next, po_flag_iterator_free
can be used to manipulate or inspect the workflow flags of a message.
* The new functions
po_message_has_sticky_flag
po_message_set_sticky_flag
po_message_sticky_flags_iterator, po_flag_next, po_flag_iterator_free
can be used to manipulate or inspect the sticky flags of a messsage.
# Emacs PO mode:
Restore syntax highlighting in Emacs version 30 or newer.
==== Download ====
Here are the compressed sources:
https://ftp.gnu.org/gnu/gettext/gettext-1.0.tar.gz (32MB)
https://ftp.gnu.org/gnu/gettext/gettext-1.0.tar.lz (9.8MB)
https://ftp.gnu.org/gnu/gettext/gettext-1.0.tar.xz (11MB)
Here are the GPG detached signatures:
https://ftp.gnu.org/gnu/gettext/gettext-1.0.tar.gz.sig
https://ftp.gnu.org/gnu/gettext/gettext-1.0.tar.lz.sig
https://ftp.gnu.org/gnu/gettext/gettext-1.0.tar.xz.sig
Use a mirror for higher download bandwidth:
https://www.gnu.org/order/ftp.html
Here are the SHA256 and SHA3-256 checksums:
File: gettext-1.0.tar.gz
SHA256 sum: 85d99b79c981a404874c02e0342176cf75c7698e2b51fe41031cf6526d974f1a
SHA3-256 sum: c8826e055416b9f1a4fdc8eab55ee2ea635973e5883132d9ad792222cbb627c4
File: gettext-1.0.tar.lz
SHA256 sum: d6342cbe1411a2fe7d139bfed80c2d63b1babc92acfedc72501cc105184f61ee
SHA3-256 sum: c838aba26f7ca33d6e519e687571eee3ff3bc81c5e4d324d744867cf00357c31
File: gettext-1.0.tar.xz
SHA256 sum: 71132a3fb71e68245b8f2ac4e9e97137d3e5c02f415636eb508ae607bc01add7
SHA3-256 sum: 0af684d24bea6d12287ecaa8872ec1b2116842e478a7df89859e42b7d55c6417
Verify the SHA256 checksum with either sha256sum, sha256, or
'shasum -a 256'.
Verify the SHA3-256 checksum with 'cksum -a sha3 -l 256 --base64'
from coreutils-9.8.
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-1.0.tar.gz.sig
The signature should match the fingerprint of the following key:
pub ed25519 2025-01-28 [SC]
E0FF BD97 5397 F77A 32AB 76EC B630 1D9E 1BBE AC08
uid Bruno Haible (Free Software 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 B6301D9E1BBEAC08
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-1.0.tar.gz.sig
| [Prev in Thread] | Current Thread | [Next in Thread] |
- gettext-1.0 released [stable], Bruno Haible <=
-
Prev by Date: GnuPG and Gpg4win Security Advisory (T8044)
-
Next by Date: Libgcrypt 1.12.0 released
-
Previous by thread: GnuPG and Gpg4win Security Advisory (T8044)
-
Next by thread: Libgcrypt 1.12.0 released
-
Index(es):