Welcome

首页 / 软件开发 / C++ / VC如何获取系统所用的语言

VC如何获取系统所用的语言2015-02-20LANGID langid = GetSystemDefaultLangID();

//例如:2052

langid = GetUserDefaultLangID();

//例如:2052

CString msgFile;

msgFile.Format(_T("%04xl"),langid);

//例如:0804

TCHAR name[4*1024]={0};

GetLocaleInfo(LOCALE_SYSTEM_DEFAULT, LOCALE_SNATIVELANGNAME,

name, sizeof(name)/sizeof(TCHAR));

//例如:中文(简体)

LCID lcid=GetSystemDefaultLCID();

//例如:2052

UINT acp=GetACP();

//例如:936

HINSTANCE 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笑