Menu selection algorithm

Shachar Shemesh wine-devel at
Sat Nov 23 13:04:36 CST 2002

Dmitry Timoshkov wrote:

>"Shachar Shemesh" <wine-devel at> wrote:
>>So, what's the problem - you ask? While my view of what should happen is 
>>obviously consistant with that of Wine's - i.e. - the locale should 
>>select which menu to use, Windows displays the English locale ONLY. The 
>>only way I could make it display the Hebrew one was by changing the 
>>language on the English one to something else (French).
>I revived my old test for FindResource and now I see what are you talking about.
>LoadStringA/W and FindResourceA/W under Win2000 do search for language resource
>in the following order:
>1. Neutral language with neutral sublanguage
>4. Current locale lang id
>5. Current locale lang id with neutral sublanguage
>6. Return first in the list
>But that means that the whole our internationalization will not work, if
>we will go that way. But the question I have is: had I made an error when
>I did the test under Win95OSR2 or MS has changed algorithm since then?
This defies any explanation in my mind. The current locale should, by 
any standard calling itself even remotely just, be the first in the list.

In any case, I would like to suggest a possible alternative to 2 and 3. 
Could it be that it asks for whatever language is considered native for 
the installation, rather than English (with English being what the both 
of us see just because we both happen to use an English installed Windows?)

This would make some sense, in an obscure and pervert sort of way, 
unless you consider the BiDi interface dillema.

Background: Windows 3.1 has introduced a Hebrew version programmed by an 
Israeli company. It was so bad, that MS introduced Windows 3.11 under 
the term "Multilinguial windows", almost just so they can put in their 
own implementation of Hebrew instead. That wasn't much better, however.

By the time Windows 95 came out, both Hebrew and Arabic versions shipped 
in two flavours. The first was a fully localized version, and the second 
one was a version that, while supporting Hebrew/Arabic, displayed the 
entire interface in English. These version were called "Hebrew enabled" 
and "Arabic enabled" respecively.

By the time Windows 98 came around, the two were shipped on the same CD. 
You would get a boot time menu that offered to install the localized, or 
the Enabled versions. I have a sneeking suspicion that that's when the 
change of behaviour described here was introduced. They probably thought 
that just because people didn't like THEIR Hebrew interface, they 
wouldn't like anyone else's. They still had to set the default locale to 
Hebrew, or DEFAULT_CHARSET would not select HEBREW_CHARSET. In other 
words, I suspect this change was introduced in or around Windows 98, to 
compensate for the fact that there was no seperate selection of 
interface language and of charset (before you laugh, KDE 3.1 suffers 
from the precise same problem).

The problem was that Windows 2000, the first truely multilingual 
Windows, while not shipping in two versions (what's the point? Just 
install the English version and add Hebrew support), apparently meant 
that you couldn't get Hebrew menus, no matter what you did.

So, I suggest we keep our current algorithm. It seems sane and correct. 
If people complain, we'll talk about it again (I'll hint that I'll be 
recommending adding a configuration option to select what to do).


More information about the wine-devel mailing list