bind_textdomain_codeset used to accept a charset ending with //TRANSLIT, as described in the documentation:
"The bind_textdomain_codeset function can be used to specify the output character set for message catalogs for domain domainname. The codeset argument must be a valid codeset name which can be used for the iconv_open function, or a null pointer."
However this is not the case anymore in glibc 2.32, and more precisely since commit 91927b7c76437db860cd86a7714476b56bb39d07. This can be seen with the following testcase:
printf("translation of NAME into French: %s\n", dgettext("libc", "NAME"));
With glibc 2.31, it prints:
translation of NAME into French: NOM
With glibc 2.32, it prints:
translation of NAME into French: NAME
Thanks for triaging this, Aurelien. I'll look into it.
(In reply to Aurelien Jarno from comment #0)
> bind_textdomain_codeset("libc", "utf-8//TRANSLIT");
The specifier is "STANDARD/CHARSET/ERROR-HANDLER" e.g. "ISO-10646/UTF-8/TRANSLIT". This needs fixing in the man pages to spell this out.
We have aliases for this though e.g. "UTF-8//" and "UTF8//" (case insensitive as part of normalization). So that should work.
We need a regression test for this, and what you've provided is probably good enough.
Fixed in master via 7d4ec75e111291851620c6aa2c4460647b7fd50d and will make it to glibc-2.33.