kernel: fix determination of using locale

Alexandre Julliard julliard at winehq.org
Wed Apr 19 04:00:54 CDT 2006


Sergei Butakov <butsergej at yandex.ru> writes:

> If somebody want to use different values of user and system locales in Wine he 
> must set LC_CTYPE for system_lcid, LANG for user_lcid and unset LC_ALL. (Is it 
> really anybody use different values?)
> Most users don't know about it, don't want and don't use different values but 
> they must set LANG equal LC_CTYPE or use LANG/LC_ALL environment variable 
> only. Otherwise Wine will not work correctly with locale.

I'm not sure why you expect LC_CTYPE to set the user locale. LC_CTYPE
defines the locale used for character conversions, and that's what
Wine does by setting the system locale. The user locale affects things
like resource loading and date formats, but these have nothing to do
with LC_CTYPE.

> From my experience:
> Wine-0.9.7/fontforge-20050502/empty ~/.wine/drive_c/windows/fonts/
> 	Windows programs work OK.
> Wine-0.9.9/fontforge-20050502/empty ~/.wine/drive_c/windows/fonts/
> 	English/Russian glyphs are ugly, it can be corrected by copying Corefont
> 	(Windows fonts) to ~/.wine/drive_c/windows/fonts/
> 	set LC_ALL=ru don't help
> Wine-0.9.11/fontforge-20060125/empty ~/.wine/drive_c/windows/fonts/
> 	some English glyphs are OK, other ugly
> 	some Russian glyphs are ugly, other square
> 	If I copy Corefont to ~/.wine/drive_c/windows/fonts/ then almost OK,
> 	but many	Russian glyphs are square still.
> 	All can be corrected by LC_ALL=ru wine ..., and fonts in
> 	~/.wine/drive_c/windows/fonts/ is not needed anymore.
> Wine-0.9.12/fontforge-20060408/empty ~/.wine/drive_c/windows/fonts/
> 	Same as Wine-0.9.11 above

If the system locale is set to Russian, then I'd expect Russian
characters to display properly no matter what the user locale is set
to. It sounds like there's a real bug here, and playing with the
locale setting is only hiding it.

-- 
Alexandre Julliard
julliard at winehq.org



More information about the wine-devel mailing list