On Mon, Jan 12, 2026 at 10:05:58PM +0000, Gavin Smith wrote: > On Mon, Jan 12, 2026 at 10:26:54PM +0100, [email protected] wrote: > > On Mon, Jan 12, 2026 at 06:21:55PM +0000, Gavin Smith wrote: > > > > > > I don't understand the reasons but the conclusion seems to be that we > > > have to use this round-about way of setting the locale, which we've > > > come to after some amount of trial and error. > > > > I tested something similar in Perl on OpenBSD 7.8, and it does not work. > > With LC_MESSAGES it did not work at all, with LC_CTYPE the switch to the > > locale happens, but there is no translation. Here is the code I tested > > (at the beginning of _switch_messages_locale: > > Would it be possible to check the value of POSIX::setlocale(LC_MESSAGES) > on OpenBSD and find if there is any way to set this to a different value? > > The "set and retrieved" part of that implies that this should be possible.
I have tried setting environment variables LC_ALL and also calling POSIX::setlocale (LC_ALL, ""), as well as other mossibilities, setting LC_CTYPE, calling POSIX::setlocale (LC_ALL, "en_US.utf8") but a POSIX::setlocale(LC_MESSAGES) call (as in libintl-perl) always returns C. I do not see any way to have it work. It actually means that libintl-perl cannot do anything on OpenBsed 7.8, unless I missed something. Maybe I could report that to the libintl-perl maintainer and see what he thinks? -- Pat
