首页 / 软件开发 / C++ / VC如何获取系统所用的语言
VC如何获取系统所用的语言2015-02-20LANGID langid = GetSystemDefaultLangID();//例如:2052langid = GetUserDefaultLangID();//例如:2052CString msgFile;msgFile.Format(_T("%04xl"),langid);//例如:0804TCHAR name[4*1024]={0};GetLocaleInfo(LOCALE_SYSTEM_DEFAULT, LOCALE_SNATIVELANGNAME,name, sizeof(name)/sizeof(TCHAR));//例如:中文(简体)LCID lcid=GetSystemDefaultLCID();//例如:2052UINT acp=GetACP();//例如:936HINSTANCE m_hLangDLL = NULL;WORD wLangID=PRIMARYLANGID(::GetSystemDefaultLangID()); switch(wLangID){case LANG_CHINESE:m_hLangDLL=AfxLoadLibrary(_T( "Chinese.DLL "));break;default:m_hLangDLL=AfxLoadLibrary(_T( "English.DLL "));break;}if(!m_hLangDLL){AfxMessageBox(_T( "Unable to load resource DLL!
Use self-resource! "));}else{AfxSetResourceHandle(m_hLangDLL);}FreeLibrary(m_hLangDLL);相关定义参考:WinNT.h//// Language IDs.//// The following two combinations of primary language ID and// sublanguage ID have special semantics://// Primary Language ID Sublanguage ID Result// ------------------- --------------- ------------------------// LANG_NEUTRAL SUBLANG_NEUTRAL Language neutral// LANG_NEUTRAL SUBLANG_DEFAULT User default language// LANG_NEUTRAL SUBLANG_SYS_DEFAULT System default language// LANG_INVARIANT SUBLANG_NEUTRAL Invariant locale////// Primary language IDs.//#define LANG_NEUTRAL 0x00#define LANG_INVARIANT 0x7f#define LANG_AFRIKAANS 0x36#define LANG_ALBANIAN 0x1c#define LANG_ARABIC 0x01#define LANG_ARMENIAN 0x2b#define LANG_ASSAMESE 0x4d#define LANG_AZERI 0x2c#define LANG_BASQUE 0x2d#define LANG_BELARUSIAN 0x23#define LANG_BENGALI 0x45#define LANG_BULGARIAN 0x02#define LANG_CATALAN 0x03#define LANG_CHINESE 0x04#define LANG_CROATIAN 0x1a#define LANG_CZECH 0x05#define LANG_DANISH 0x06#define LANG_DIVEHI 0x65#define LANG_DUTCH 0x13#define LANG_ENGLISH 0x09#define LANG_ESTONIAN 0x25#define LANG_FAEROESE 0x38#define LANG_FARSI 0x29#define LANG_FINNISH 0x0b#define LANG_FRENCH 0x0c#define LANG_GALICIAN 0x56#define LANG_GEORGIAN 0x37#define LANG_GERMAN 0x07#define LANG_GREEK 0x08#define LANG_GUJARATI 0x47#define LANG_HEBREW 0x0d#define LANG_HINDI 0x39#define LANG_HUNGARIAN 0x0e#define LANG_ICELANDIC 0x0f#define LANG_INDONESIAN 0x21#define LANG_ITALIAN 0x10#define LANG_JAPANESE 0x11#define LANG_KANNADA 0x4b#define LANG_KASHMIRI 0x60#define LANG_KAZAK 0x3f#define LANG_KONKANI 0x57#define LANG_KOREAN 0x12#define LANG_KYRGYZ 0x40#define LANG_LATVIAN 0x26#define LANG_LITHUANIAN 0x27#define LANG_MACEDONIAN 0x2f // the Former Yugoslav Republic of Macedonia#define LANG_MALAY 0x3e#define LANG_MALAYALAM 0x4c#define LANG_MANIPURI 0x58#define LANG_MARATHI 0x4e#define LANG_MONGOLIAN 0x50#define LANG_NEPALI 0x61#define LANG_NORWEGIAN 0x14#define LANG_ORIYA 0x48#define LANG_POLISH 0x15#define LANG_PORTUGUESE 0x16#define LANG_PUNJABI 0x46#define LANG_ROMANIAN 0x18#define LANG_RUSSIAN 0x19#define LANG_SANSKRIT 0x4f#define LANG_SERBIAN 0x1a#define LANG_SINDHI 0x59#define LANG_SLOVAK 0x1b#define LANG_SLOVENIAN 0x24#define LANG_SPANISH 0x0a#define LANG_SWAHILI 0x41#define LANG_SWEDISH 0x1d#define LANG_SYRIAC 0x5a#define LANG_TAMIL 0x49#define LANG_TATAR 0x44#define LANG_TELUGU 0x4a#define LANG_THAI 0x1e#define LANG_TURKISH 0x1f#define LANG_UKRAINIAN 0x22#define LANG_URDU 0x20#define LANG_UZBEK 0x43#define LANG_VIETNAMESE 0x2a//// Sublanguage IDs.//// The name immediately following SUBLANG_ dictates which primary// language ID that sublanguage ID can be combined with to form a// valid language ID.//#define SUBLANG_NEUTRAL 0x00 // language neutral#define SUBLANG_DEFAULT 0x01 // user default#define SUBLANG_SYS_DEFAULT 0x02 // system default#define SUBLANG_ARABIC_SAUDI_ARABIA 0x01 // Arabic (Saudi Arabia)#define SUBLANG_ARABIC_IRAQ 0x02 // Arabic (Iraq)#define SUBLANG_ARABIC_EGYPT 0x03 // Arabic (Egypt)#define SUBLANG_ARABIC_LIBYA 0x04 // Arabic (Libya)#define SUBLANG_ARABIC_ALGERIA 0x05 // Arabic (Algeria)#define SUBLANG_ARABIC_MOROCCO 0x06 // Arabic (Morocco)#define SUBLANG_ARABIC_TUNISIA 0x07 // Arabic (Tunisia)#define SUBLANG_ARABIC_OMAN 0x08 // Arabic (Oman)#define SUBLANG_ARABIC_YEMEN 0x09 // Arabic (Yemen)#define SUBLANG_ARABIC_SYRIA 0x0a // Arabic (Syria)#define SUBLANG_ARABIC_JORDAN 0x0b // Arabic (Jordan)#define SUBLANG_ARABIC_LEBANON 0x0c // Arabic (Lebanon)#define SUBLANG_ARABIC_KUWAIT 0x0d // Arabic (Kuwait)#define SUBLANG_ARABIC_UAE 0x0e // Arabic (U.A.E)#define SUBLANG_ARABIC_BAHRAIN 0x0f // Arabic (Bahrain)#define SUBLANG_ARABIC_QATAR 0x10 // Arabic (Qatar)#define SUBLANG_AZERI_LATIN 0x01 // Azeri (Latin)#define SUBLANG_AZERI_CYRILLIC 0x02 // Azeri (Cyrillic)#define SUBLANG_CHINESE_TRADITIONAL 0x01 // Chinese (Taiwan)#define SUBLANG_CHINESE_SIMPLIFIED 0x02 // Chinese (PR China)#define SUBLANG_CHINESE_HONGKONG 0x03 // Chinese (Hong Kong S.A.R., P.R.C.)#define SUBLANG_CHINESE_SINGAPORE 0x04 // Chinese (Singapore)#define SUBLANG_CHINESE_MACAU 0x05 // Chinese (Macau S.A.R.)#define SUBLANG_DUTCH 0x01 // Dutch#define SUBLANG_DUTCH_BELGIAN 0x02 // Dutch (Belgian)#define SUBLANG_ENGLISH_US 0x01 // English (USA)#define SUBLANG_ENGLISH_UK 0x02 // English (UK)#define SUBLANG_ENGLISH_AUS 0x03 // English (Australian)#define SUBLANG_ENGLISH_CAN 0x04 // English (Canadian)#define SUBLANG_ENGLISH_NZ 0x05 // English (New Zealand)#define SUBLANG_ENGLISH_EIRE 0x06 // English (Irish)#define SUBLANG_ENGLISH_SOUTH_AFRICA 0x07 // English (South Africa)#define SUBLANG_ENGLISH_JAMAICA 0x08 // English (Jamaica)#define SUBLANG_ENGLISH_CARIBBEAN 0x09 // English (Caribbean)#define SUBLANG_ENGLISH_BELIZE 0x0a // English (Belize)#define SUBLANG_ENGLISH_TRINIDAD 0x0b // English (Trinidad)#define SUBLANG_ENGLISH_ZIMBABWE 0x0c // English (Zimbabwe)#define SUBLANG_ENGLISH_PHILIPPINES 0x0d // English (Philippines)#define SUBLANG_FRENCH 0x01 // French#define SUBLANG_FRENCH_BELGIAN 0x02 // French (Belgian)#define SUBLANG_FRENCH_CANADIAN 0x03 // French (Canadian)#define SUBLANG_FRENCH_SWISS 0x04 // French (Swiss)#define SUBLANG_FRENCH_LUXEMBOURG 0x05 // French (Luxembourg)#define SUBLANG_FRENCH_MONACO 0x06 // French (Monaco)#define SUBLANG_GERMAN 0x01 // German#define SUBLANG_GERMAN_SWISS 0x02 // German (Swiss)#define SUBLANG_GERMAN_AUSTRIAN 0x03 // German (Austrian)#define SUBLANG_GERMAN_LUXEMBOURG 0x04 // German (Luxembourg)#define SUBLANG_GERMAN_LIECHTENSTEIN 0x05 // German (Liechtenstein)#define SUBLANG_ITALIAN 0x01 // Italian#define SUBLANG_ITALIAN_SWISS 0x02 // Italian (Swiss)#if _WIN32_WINNT >= 0x0501#define SUBLANG_KASHMIRI_SASIA 0x02 // Kashmiri (South Asia)#endif#define SUBLANG_KASHMIRI_INDIA 0x02 // For app compatibility only#define SUBLANG_KOREAN 0x01 // Korean (Extended Wansung)#define SUBLANG_LITHUANIAN 0x01 // Lithuanian#define SUBLANG_MALAY_MALAYSIA 0x01 // Malay (Malaysia)#define SUBLANG_MALAY_BRUNEI_DARUSSALAM 0x02 // Malay (Brunei Darussalam)#define SUBLANG_NEPALI_INDIA 0x02 // Nepali (India)#define SUBLANG_NORWEGIAN_BOKMAL 0x01 // Norwegian (Bokmal)#define SUBLANG_NORWEGIAN_NYNORSK 0x02 // Norwegian (Nynorsk)#define SUBLANG_PORTUGUESE 0x02 // Portuguese#define SUBLANG_PORTUGUESE_BRAZILIAN 0x01 // Portuguese (Brazilian)#define SUBLANG_SERBIAN_LATIN 0x02 // Serbian (Latin)#define SUBLANG_SERBIAN_CYRILLIC 0x03 // Serbian (Cyrillic)#define SUBLANG_SPANISH 0x01 // Spanish (Castilian)#define SUBLANG_SPANISH_MEXICAN 0x02 // Spanish (Mexican)#define SUBLANG_SPANISH_MODERN 0x03 // Spanish (Spain)#define SUBLANG_SPANISH_GUATEMALA 0x04 // Spanish (Guatemala)#define SUBLANG_SPANISH_COSTA_RICA 0x05 // Spanish (Costa Rica)#define SUBLANG_SPANISH_PANAMA 0x06 // Spanish (Panama)#define SUBLANG_SPANISH_DOMINICAN_REPUBLIC 0x07 // Spanish (Dominican Republic)#define SUBLANG_SPANISH_VENEZUELA 0x08 // Spanish (Venezuela)#define SUBLANG_SPANISH_COLOMBIA 0x09 // Spanish (Colombia)#define SUBLANG_SPANISH_PERU 0x0a // Spanish (Peru)#define SUBLANG_SPANISH_ARGENTINA 0x0b // Spanish (Argentina)#define SUBLANG_SPANISH_ECUADOR 0x0c // Spanish (Ecuador)#define SUBLANG_SPANISH_CHILE 0x0d // Spanish (Chile)#define SUBLANG_SPANISH_URUGUAY 0x0e // Spanish (Uruguay)#define SUBLANG_SPANISH_PARAGUAY 0x0f // Spanish (Paraguay)#define SUBLANG_SPANISH_BOLIVIA 0x10 // Spanish (Bolivia)#define SUBLANG_SPANISH_EL_SALVADOR 0x11 // Spanish (El Salvador)#define SUBLANG_SPANISH_HONDURAS 0x12 // Spanish (Honduras)#define SUBLANG_SPANISH_NICARAGUA 0x13 // Spanish (Nicaragua)#define SUBLANG_SPANISH_PUERTO_RICO 0x14 // Spanish (Puerto Rico)#define SUBLANG_SWEDISH 0x01 // Swedish#define SUBLANG_SWEDISH_FINLAND 0x02 // Swedish (Finland)#define SUBLANG_URDU_PAKISTAN 0x01 // Urdu (Pakistan)#define SUBLANG_URDU_INDIA 0x02 // Urdu (India)#define SUBLANG_UZBEK_LATIN 0x01 // Uzbek (Latin)#define SUBLANG_UZBEK_CYRILLIC 0x02 // Uzbek (Cyrillic)From:csdn博客 微wx笑