-
Подскажите, как опеределить язык GUI Windows? Именно язык GUI (Explorer-а), (т.е. грубо говоря кнопка "Пуск" или "Start"). Например: "заплаты" идут раздельно для русской и английской версии (Windows2000-KB921503-x86-ENU.EXE и Windows2000-KB921503-x86-RUS.EXE).
WinAPI функции GetSystemDefaultLCID и GetSystemDefaultLangID всегда возвращают код языка 1049 (RUS) даже для "английской" версии. Как я понял GetSystemDefaultLCID возвращает РЕГИОН, установленный в панели управления, соответственно для России это и будет 1049. С GetSystemDefaultLangID та же история.
Единственная зацепка: если "опеределить" наименование языка GetLocaleInfo(LocaleLCID, LOCALE_SLANGUAGE, ... то русская версия вернет "Русский", а английская "Russian". Но использовать данный факт не совсем удобно и "красиво", да и не факт что на всех ОС (у нас пока от NT4 до Server 2003) это будет работать.
Как найти язык именно GUI в MSDN я не нашел. Может кто сталкивался с подобной проблемой?
-
Не подойдет?
function GetSystemDefaultUILanguage: UINT; stdcall; external kernel32 name 'GetSystemDefaultUILanguage';
function GetSysLang: integer;
begin
result := Lo(GetSystemDefaultUILanguage);
end;
00 - LANG_NEUTRAL - Neutral
01 - LANG_ARABIC - Arabic
02 - LANG_BULGARIAN - Bulgarian
03 - LANG_CATALAN - Catalan
04 - LANG_CHINESE - Chinese
05 - LANG_CZECH - Czech
06 - LANG_DANISH - Danish
07 - LANG_GERMAN - German
08 - LANG_GREEK - Greek
09 - LANG_ENGLISH - English
0a - LANG_SPANISH - Spanish
0b - LANG_FINNISH - Finnish
0c - LANG_FRENCH - French
0d - LANG_HEBREW - Hebrew
0e - LANG_HUNGARIAN - Hungarian
0f - LANG_ICELANDIC - Icelandic
10 - LANG_ITALIAN - Italian
11 - LANG_JAPANESE - Japanese
12 - LANG_KOREAN - Korean
13 - LANG_DUTCH - Dutch
14 - LANG_NORWEGIAN - Norwegian
15 - LANG_POLISH - Polish
16 - LANG_PORTUGUESE - Portuguese
18 - LANG_ROMANIAN - Romanian
19 - LANG_RUSSIAN - Russian
1a - LANG_CROATIAN - Croatian
1a - LANG_SERBIAN - Serbian
1b - LANG_SLOVAK - Slovak
1c - LANG_ALBANIAN - Albanian
1d - LANG_SWEDISH - Swedish
1e - LANG_THAI - Thai
1f - LANG_TURKISH - Turkish
20 - LANG_URDU - Urdu
21 - LANG_INDONESIAN - Indonesian
22 - LANG_UKRAINIAN - Ukrainian
23 - LANG_BELARUSIAN - Belarusian
24 - LANG_SLOVENIAN - Slovenian
25 - LANG_ESTONIAN - Estonian
26 - LANG_LATVIAN - Latvian
27 - LANG_LITHUANIAN - Lithuanian
29 - LANG_FARSI - Farsi
2a - LANG_VIETNAMESE - Vietnamese
2b - LANG_ARMENIAN - Armenian
2c - LANG_AZERI - Azeri
2d - LANG_BASQUE - Basque
2f - LANG_MACEDONIAN - FYRO - Macedonian
36 - LANG_AFRIKAANS - Afrikaans
37 - LANG_GEORGIAN - Georgian
38 - LANG_FAEROESE - Faeroese
39 - LANG_HINDI - Hindi
3e - LANG_MALAY - Malay
3f - LANG_KAZAK - Kazak
40 - LANG_KYRGYZ - Kyrgyz
41 - LANG_SWAHILI - Swahili
43 - LANG_UZBEK - Uzbek
44 - LANG_TATAR - Tatar
45 - LANG_BENGALI - Not - supported.
46 - LANG_PUNJABI - Punjabi
47 - LANG_GUJARATI - Gujarati
48 - LANG_ORIYA - Not - supported.
49 - LANG_TAMIL - Tamil
4a - LANG_TELUGU - Telugu
4b - LANG_KANNADA - Kannada
4c - LANG_MALAYALAM - Not - supported.
4d - LANG_ASSAMESE - Not - supported.
4e - LANG_MARATHI - Marathi
4f - LANG_SANSKRIT - Sanskrit
50 - LANG_MONGOLIAN - Mongolian
56 - LANG_GALICIAN - Galician
57 - LANG_KONKANI - Konkani
58 - LANG_MANIPURI - Not - supported.
59 - LANG_SINDHI - Not - supported.
5a - LANG_SYRIAC - Syriac
60 - LANG_KASHMIRI - Not - supported.
61 - LANG_NEPALI - Not - supported.
65 - LANG_DIVEHI - Divehi
-
интересно, в каком случае эта функция вернет LANG_NEUTRAL? :)
-
> function GetSystemDefaultUILanguage
Подойдет скорее всего... Где-то я уже встречал ссылку на эту функцию, но в модуле Windows ее нет, да и в справке я ее не нашел...
Спасибо!
-
> интересно, в каком случае эта функция вернет LANG_NEUTRAL
возвращает.... возвращает.... сколько софта с "кривыми" кодами языков.. ужас :-)
|