Конференция "WinAPI" » Как опеределить язык GUI Windows!!! Не GetSystemDefaultLCID!!! [D7, Win95/98, WinME, NT4, Win2k, WinXP]
 
  • Rav (26.12.07 10:20) [0]
    Подскажите, как опеределить язык 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 я не нашел.
    Может кто сталкивался с подобной проблемой?
  • DVM © (26.12.07 10:38) [1]
    Не подойдет?


    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

  • clickmaker © (26.12.07 11:45) [2]
    интересно, в каком случае эта функция вернет LANG_NEUTRAL?
    :)
  • Rav (26.12.07 14:23) [3]

    > function GetSystemDefaultUILanguage


    Подойдет скорее всего... Где-то я уже встречал ссылку на эту функцию, но в модуле Windows ее нет, да и в справке я ее не нашел...

    Спасибо!
  • Rav (26.12.07 14:26) [4]

    > интересно, в каком случае эта функция вернет LANG_NEUTRAL

    возвращает.... возвращает....
    сколько софта с "кривыми" кодами языков.. ужас :-)
 
Конференция "WinAPI" » Как опеределить язык GUI Windows!!! Не GetSystemDefaultLCID!!! [D7, Win95/98, WinME, NT4, Win2k, WinXP]
Есть новые Нет новых   [134431   +14][b:0][p:0.002]