kernel: fix determination of using locale

Sergei Butakov butsergej at yandex.ru
Sun Apr 16 14:16:16 CDT 2006


On Sunday 16 April 2006 19:04, Dmitry Timoshkov wrote:

> Probably you just need to set LC_MESSAGES to en_US.

Do you mean
        # export LANG="POSIX"
        # export LC_CTYPE="ru_RU.CP1251"
        # export LC_COLLATE="ru_RU.CP1251"
        # export LC_MESSAGES="en_US" ?
That's don't work. 

Because:
There are two wine's variables which define default locale 
(dlls/ntdll/resource.c): user_lcid and system_lcid.
system_lcid defined by first not NULL environment variable LC_ALL, LC_CTYPE, 
LANG (in that order). If that L* is "POSIX"/"C" or all are not defined then 
system_lcid set up as en_US.
user_lcid defined by LC_ALL, LANG. If that L* ...<same as above>.

Is there reason don't check LC_CTYPE for defining user_lcid? IMHO no.
Wine is the only program which don't work properly with my locale (and with 
other locale which isn't en_US or don't use LC_ALL/LANG variable for that).

---------------------------------
LANG - default value for all LC_* variables.
LC_CTYPE - define using character types and encoding.
LC_ALL - override all other LC_* variables.
---------------------------------
The same trouble with other wine's locale variables: user_ui_language and 
system_ui_language.



More information about the wine-devel mailing list