Kbase P6228: Dialog Box Button Labels Appear in English Although the Operating System is of Another Language
Autor |
  Progress Software Corporation - Progress |
Acesso |
  Público |
Publicação |
  14/06/2004 |
|
Status: Unverified
FACT(s) (Environment):
Windows 2000
SYMPTOM(s):
When running 4GL code to display a dialog box, the button labels appear in English although the Operating System is of another language.
MESSAGE "Terve!" VIEW-AS ALERT-BOX INFORMATION BUTTONS YES-NO.
Running the above code causes a dialog box to be displayed with two buttons; [YES] [NO].
The button labels should be displayed in the language of the Operating System.
This is however not always the case.
CAUSE:
When the above code is run, Progress calls the MessageBoxA function in user32.dll
If the language of the Operating System is English, the two buttons displayed will appear in English; [YES] [NO].
If the language of the Operating System is e.g. German, the two buttons will have the labels [JA] [NEIN], this happens because the actual buttons and their labels come from the Operating System.
If you however are running a Multilanguage User Interface (MUI) of Windows 2000, this is not the case.
The MUI is an add-on to the English Windows 2000 and makes the Windows User Interface to appear in the language of the MUI add-on, this could be German, Finnish, Swedish etc.
The MUI on Windows 2000 is however only localized in user mode and not in kernel mode.
When Progress gets the dialog box and the buttons by calling the MessageBoxA in user32.dll, the actual strings (button labels) to the buttons are located in the Win32k.sys file and since this component runs in kernel mode, it is not localized - the result of this is that the button labels will appear in English although the MUI of the chosen language is installed on the English Windows 2000.
According to Microsoft, the MUI is only 90% localized for Windows 2000.
FIX:
The MUI is more localized on Windows XP Professional.
Also, on Windows XP the actual strings (button labels) are located in the user32.dll that runs in user mode thus they are localized.
This issue only affects PC's with the English version of Windows 2000 running the MUI add-on - not Windows 2000 versions that are natively of a different language.