On Thu, Nov 28, 2024 at 11:50:31PM +0100, Patrice Dumas wrote: > I checked on a macos, and the failure happens only with LC_ALL=C. This > is something we already experienced in the past with libintl-perl. > > Both Perl calling gettext and the C only teximakehtml call fail to > translate strings. So it seems to be a failure to switch locale in > tp/Texinfo/XS/main/translations.c translate_string when LC_ALL is C.
I had a more in-depth look at what happen on macos-12, and I did not find any lead on what could be wrong. The switch_messages_locale in tp/Texinfo/XS/main/translations.c called from translate_string to set first a non "C" locale manages to switch to en_US.UTF-8, with LANG set to en_US.UTF-8 and LC_MESSAGES set from setlocale to en_US.UTF-8 too. Then LANGUAGE is set to "pt" and gettext is called, but the string is not translated. I tried to look at disc access with an equivalement of strace, I see no access to the directory specified in bindtextdomain for the texinfo_document domain. The gettext libintl implementation actually used is from GNU gettext 0.22 (if I recall well, same as in the CI, installed by homebrew in an /usr/local/opt directory), so it is quite unlikely that the issue is there. I have no idea where to look next. -- Pat