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