SUMMARY
When an application containing resources for multiple languages is running
on Windows 95 or Windows NT, the operating system attempts to load the
resource with the most suitable language marking. It determines the most
suitable language marking according to the thread's Locale ID (in the case
of Windows NT) or the system's Locale ID (in the case of Windows 95). The
operating system does this without intervention from the application
program.
The operating system searches for the resource (except string resource) to
be loaded in the following order:
Windows NT
The search pattern for the resource language marking is:
- Neutral
- Primary Lang/ Sub lang
- English (US)
- Neutral (default)
- Any other languages
- Neutral (sys default)
Windows 95
- Neutral
- Primary Lang/ Sub Lang
- Primary Lang/ Sublang_neutral
- English (US)
- Neutral (default)
- Whatever else it can find
For example, if the application contains a dialog box resource in Swiss
German, French, US English, the Swiss German dialog box would be loaded
when running on Swiss German NT, when DialogBox() is called to bring up
this dialog box. If the same binary is running on a Spanish version of
Windows NT, then the US English version of the same dialog box is loaded.
These examples will occur without any change to the code.
Programmers can also control the language version of the resource they are
loaded by calling FindResourceEx(), and specifying the language directly.
The string resource is loaded in a slightly different order:
Windows NT
- Neutral
- Prim Lang/ Sub Lang
- English (US)
- Neutral (default)
- Whatever else it can find
Windows 95
- Neutral
- Neutral (default)
- Neutral (sys default)
- Prim Lang/ Sub Lang
- English (US)
- English
- Whatever else it can find