Here is a new release of GNU gettext. GNU gettext allows programs to produce messages in the user's native language. It consists of - runtime libraries for C, C++, Java, C#, Shell programs. - tools for programmers and translators.
New in version 0.22: ==================== * PO file format: - When a #: line contains references to file names that contain spaces, these file names are surrounded by Unicode characters U+2068 and U+2069. This makes it possible to parse such references correctly. * Improvements for maintainers: - The AM_GNU_GETTEXT macro now defines two variables localedir_c and localedir_c_make, that can be used in C code or in Makefiles, respectively, for representing the value of the --localedir configure option. * Programming languages support: - C, C++: o xgettext now supports gettext-like functions that take wide strings (of type 'const wchar_t *', 'const char16_t *', or 'const char32_t *') as arguments. o xgettext now recognizes numbers with digit separators, as defined by ISO C 23, as tokens. o xgettext and msgfmt now recognize the format string directive %b (for binary integer output, as defined by ISO C 23) in format strings. o xgettext and msgfmt now recognize the argument size specifiers w8, w16, w32, w64, wf8, wf16, wf32, wf64 (as defined by ISO C 23) in format strings. o xgettext and msgfmt now recognize C++ format strings, as defined by ISO C++ 20. They are marked as 'c++-format' in POT and PO files. A new example has been added, 'hello-c++20', that illustrates how to use these format strings with gettext. - Java: o The build system and tools now also support Java versions newer than Java 11. This is known to work up to Java 20, at least. On the other hand, support for old versions of Java (Java 1.5 and GCJ) has been dropped. - Tcl: xgettext now supports the \x, \u, and \U escapes as defined in Tcl 8.6. * Portability: - On systems with musl libc, the *gettext() functions in libc now work with MO files generated from PO files with an encoding other than UTF-8. To this effect, the msgfmt program now converts the messages to UTF-8 encoding before storing them in a MO file. You can prevent this by using the msgfmt --no-convert option. - On systems with musl libc, the *gettext() functions in libc now work with MO files generated from PO files with ISO C 99 <inttypes.h> format string directive macros. To this effect, the msgfmt program pre-expands strings with such macros. You can prevent this by using the msgfmt --no-redundancy option. * xgettext: - The xgettext option '--sorted-output' is now deprecated. - xgettext input files of type PO that are not all ASCII and not UTF-8 encoded are now handled correctly. * The base Unicode standard is now updated to 15.0.0. * Emacs PO mode: Fix an incompatibility with Emacs version 29 or newer. Download: ========= Here are the compressed sources: https://ftp.gnu.org/gnu/gettext/gettext-0.22.tar.gz (25MB) https://ftp.gnu.org/gnu/gettext/gettext-0.22.tar.lz (7.8MB) https://ftp.gnu.org/gnu/gettext/gettext-0.22.tar.xz (9.6MB) Here are the GPG detached signatures: https://ftp.gnu.org/gnu/gettext/gettext-0.22.tar.gz.sig https://ftp.gnu.org/gnu/gettext/gettext-0.22.tar.lz.sig https://ftp.gnu.org/gnu/gettext/gettext-0.22.tar.xz.sig Here are the SHA1 and SHA256 checksums: ee59ed8121be886a23d5975e22bc857f830d86c8 gettext-0.22.tar.gz SfCJvhG0kBcLvwntL1Hl9Rd/Vb5MxmUEpYYYIOD7Bqs= gettext-0.22.tar.gz 261aa54775577b9b709316b0e9fab804b603f46b gettext-0.22.tar.lz JOJmmyOr8m+a/bvDBV7eszh5+zZFTegOjkqts9u+C5Y= gettext-0.22.tar.lz d9666d3b9c47a84c814d32e76fa75f60ec23756f gettext-0.22.tar.xz DmA5OkcGFWe0aHWySbfSeIsJLWRX1lYUW7Dn5qPibZM= gettext-0.22.tar.xz Verify the base64 SHA256 checksum with cksum -a sha256 --check from coreutils-9.2 or OpenBSD's cksum since 2007. 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.22.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) <br...@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.22.tar.gz.sig Documentation: ============== Documentation for gettext: https://www.gnu.org/software/gettext/manual/ Documentation for libtextstyle: https://www.gnu.org/software/gettext/libtextstyle/manual/