Thread: Re: [pgsql-hackers-win32] Win32 & NLS

Re: [pgsql-hackers-win32] Win32 & NLS

From
"Magnus Hagander"
Date:
>Magnus, can you try a quick standalone test program to see if Windows'
>setlocale seems to act that way?  The FAQ you pointed at implies that
>GNU gettext has some issues in this area, but it doesn't say outright
>that the setlocale function itself fails.

Yup, still doesn't seem to work. Assuming this is what you wanted me to
test ;-) Test program attached, results below. It returns NULL for
whatever I try with LC_MESSAGES. And yes, Windows has weird names for
locales :-) See
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vclib/h
tml/_crt_language_strings.asp.

Or do I need to add some kind of initialization of the gettext library?

//Magnus


$ ./localetest.exe
LC_CTYPE -> NULL: C
LC_CTYPE -> C: C
LC_CTYPE -> en_US: (null)
LC_CTYPE -> english-us: English_United States.1252
LC_MESSAGES -> NULL: (null)
LC_MESSAGES -> C: (null)
LC_MESSAGES -> en_US: (null)
LC_MESSAGES -> english-us: (null)

Attachment

Re: [pgsql-hackers-win32] Win32 & NLS

From
Tom Lane
Date:
"Magnus Hagander" <mha@sollentuna.net> writes:
> Test program attached, results below. It returns NULL for
> whatever I try with LC_MESSAGES.

It looks like LC_MESSAGES just plain does not work on Windows.  I did
some googling and found some pages suggesting this, for instance

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vclib/html/_crt_setlocale.2c_._wsetlocale.asp

The patch you suggest looks remarkably ugly; in particular it is
generally unsafe to pass a local variable to putenv.  Perhaps that
does not matter on Windows but I wonder whether the putenv part couldn't
just be dropped.  And why bother with ZeroMemory?

            regards, tom lane