setlocale以及各区域语言信息
setlocale 支持的参数具体的资料很少, 可以跟踪源码获取相关信息
setlocale 设置的包括, 语言,区域,国家,代码页等
以下列出系统安装的相关表
static BOOL CALLBACK LocEnumProc(CHAR *pHexCode)
{
LCID dwLcid;
CHAR szLangName[256], szLangNameSab[256], szCnty[256], szCodePage[256];
dwLcid = strtoul(pHexCode, NULL, 16);
GetLocaleInfoA(dwLcid, LOCALE_SABBREVLANGNAME, szLangNameSab, sizeof(szLangNameSab)); // 简写
GetLocaleInfoA(dwLcid, LOCALE_IDEFAULTANSICODEPAGE, szCodePage, sizeof(szCodePage)); // 代码页
GetLocaleInfoA(dwLcid, LOCALE_SENGLANGUAGE, szLangName, sizeof(szLangName)); // 语言
GetLocaleInfoA(dwLcid, LOCALE_SENGCOUNTRY, szCnty, sizeof(szCnty)); // 国家
ATLTRACE("%04x %-6s %-6s %-24s %s\r\n", dwLcid, szLangNameSab, szCodePage, szLangName, szCnty);
return TRUE;
}
BOOL OutLangName()
{
EnumSystemLocalesA(LocEnumProc, LCID_INSTALLED);
return TRUE;
}
实际输出如下
0401 ARA 1256 Arabic Saudi Arabia
0402 BGR 1251 Bulgarian Bulgaria
0403 CAT 1252 Catalan Spain
0404 CHT 950 Chinese (Traditional) Taiwan
0405 CSY 1250 Czech Czech Republic
0406 DAN 1252 Danish Denmark
0407 DEU 1252 German Germany
0408 ELL 1253 Greek Greece
0409 ENU 1252 English United States
040a ESP 1252 Spanish Spain
040b FIN 1252 Finnish Finland
040c FRA 1252 French France
040d HEB 1255 Hebrew Israel
040e HUN 1250 Hungarian Hungary
040f ISL 1252 Icelandic Iceland
0410 ITA 1252 Italian Italy
0411 JPN 932 Japanese Japan
0412 KOR 949 Korean Korea
0413 NLD 1252 Dutch Netherlands
0414 NOR 1252 Norwegian (Bokm錶) Norway
0415 PLK 1250 Polish Poland
0416 PTB 1252 Portuguese Brazil
0417 RMC 1252 Romansh Switzerland
0418 ROM 1250 Romanian Romania
0419 RUS 1251 Russian Russia
041a HRV 1250 Croatian Croatia
041b SKY 1250 Slovak Slovakia
041c SQI 1250 Albanian Albania
041d SVE 1252 Swedish Sweden
041e THA 874 Thai Thailand
041f TRK 1254 Turkish Turkey
0420 URD 1256 Urdu Islamic Republic of Pakistan
0421 IND 1252 Indonesian Indonesia
0422 UKR 1251 Ukrainian Ukraine
0423 BEL 1251 Belarusian Belarus
0424 SLV 1250 Slovenian Slovenia
0425 ETI 1257 Estonian Estonia
0426 LVI 1257 Latvian Latvia
0427 LTH 1257 Lithuanian Lithuania
0428 TAJ 1251 Tajik (Cyrillic) Tajikistan
0429 FAR 1256 Persian Iran
042a VIT 1258 Vietnamese Vietnam
042b HYE 0 Armenian Armenia
042c AZE 1254 Azeri (Latin) Azerbaijan
042d EUQ 1252 Basque Spain
042e HSB 1252 Upper Sorbian Germany
042f MKI 1251 Macedonian (FYROM) Macedonia (FYROM)
0432 TSN 1252 Setswana South Africa
0434 XHO 1252 isiXhosa South Africa
0435 ZUL 1252 isiZulu South Africa
0436 AFK 1252 Afrikaans South Africa
0437 KAT 0 Georgian Georgia
0438 FOS 1252 Faroese Faroe Islands
0439 HIN 0 Hindi India
043a MLT 0 Maltese Malta
043b SME 1252 Sami (Northern) Norway
043e MSL 1252 Malay Malaysia
043f KKZ 0 Kazakh Kazakhstan
0440 KYR 1251 Kyrgyz Kyrgyzstan
0441 SWK 1252 Kiswahili Kenya
0442 TUK 1250 Turkmen Turkmenistan
0443 UZB 1254 Uzbek (Latin) Uzbekistan
0444 TTT 1251 Tatar Russia
0445 BNG 0 Bengali India
0446 PAN 0 Punjabi India
0447 GUJ 0 Gujarati India
0448 ORI 0 Oriya India
0449 TAM 0 Tamil India
044a TEL 0 Telugu India
044b KDI 0 Kannada India
044c MYM 0 Malayalam India
044d ASM 0 Assamese India
044e MAR 0 Marathi India
044f SAN 0 Sanskrit India
0450 MNN 1251 Mongolian (Cyrillic) Mongolia
0451 BOB 0 Tibetan People's Republic of China
0452 CYM 1252 Welsh United Kingdom
0453 KHM 0 Khmer Cambodia
0454 LAO 0 Lao Lao P.D.R.
0456 GLC 1252 Galician Spain
0457 KNK 0 Konkani India
045a SYR 0 Syriac Syria
045b SIN 0 Sinhala Sri Lanka
045d IUS 0 Inuktitut (Syllabics) Canada
045e AMH 0 Amharic Ethiopia
0461 NEP 0 Nepali Nepal
0462 FYN 1252 Frisian Netherlands
0463 PAS 0 Pashto Afghanistan
0464 FPO 1252 Filipino Philippines
0465 DIV 0 Divehi Maldives
0468 HAU 1252 Hausa (Latin) Nigeria
046a YOR 1252 Yoruba Nigeria
046b QUB 1252 Quechua Bolivia
046c NSO 1252 Sesotho sa Leboa South Africa
046d BAS 1251 Bashkir Russia
046e LBX 1252 Luxembourgish Luxembourg
046f KAL 1252 Greenlandic Greenland
0470 IBO 1252 Igbo Nigeria
0478 III 0 Yi People's Republic of China
047a MPD 1252 Mapudungun Chile
047c MWK 1252 Mohawk Canada
047e BRE 1252 Breton France
0480 UIG 1256 Uyghur People's Republic of China
0481 MRI 0 Maori New Zealand
0482 OCI 1252 Occitan France
0483 COS 1252 Corsican France
0484 GSW 1252 Alsatian France
0485 SAH 1251 Yakut Russia
0486 QUT 1252 K'iche Guatemala
0487 KIN 1252 Kinyarwanda Rwanda
0488 WOL 1252 Wolof Senegal
048c PRS 1256 Dari Afghanistan
0491 GLA 1252 Scottish Gaelic United Kingdom
0801 ARI 1256 Arabic Iraq
0804 CHS 936 Chinese (Simplified) People's Republic of China
0807 DES 1252 German Switzerland
0809 ENG 1252 English United Kingdom
080a ESM 1252 Spanish Mexico
080c FRB 1252 French Belgium
0810 ITS 1252 Italian Switzerland
0813 NLB 1252 Dutch Belgium
0814 NON 1252 Norwegian (Nynorsk) Norway
0816 PTG 1252 Portuguese Portugal
081a SRL 1250 Serbian (Latin) Serbia and Montenegro (Former)
081d SVF 1252 Swedish Finland
082c AZC 1251 Azeri (Cyrillic) Azerbaijan
082e DSB 1252 Lower Sorbian Germany
083b SMF 1252 Sami (Northern) Sweden
083c IRE 1252 Irish Ireland
083e MSB 1252 Malay Brunei Darussalam
0843 UZB 1251 Uzbek (Cyrillic) Uzbekistan
0845 BNB 0 Bengali Bangladesh
0850 MNG 0 Mongolian (Traditional Mongolian) People's Republic of China
085d IUK 1252 Inuktitut (Latin) Canada
085f TZM 1252 Tamazight (Latin) Algeria
086b QUE 1252 Quechua Ecuador
0c01 ARE 1256 Arabic Egypt
0c04 ZHH 950 Chinese (Traditional) Hong Kong S.A.R.
0c07 DEA 1252 German Austria
0c09 ENA 1252 English Australia
0c0a ESN 1252 Spanish Spain
0c0c FRC 1252 French Canada
0c1a SRB 1251 Serbian (Cyrillic) Serbia and Montenegro (Former)
0c3b SMG 1252 Sami (Northern) Finland
0c6b QUP 1252 Quechua Peru
1001 ARL 1256 Arabic Libya
1004 ZHI 936 Chinese (Simplified) Singapore
1007 DEL 1252 German Luxembourg
1009 ENC 1252 English Canada
100a ESG 1252 Spanish Guatemala
100c FRS 1252 French Switzerland
101a HRB 1250 Croatian (Latin) Bosnia and Herzegovina
103b SMJ 1252 Sami (Lule) Norway
1401 ARG 1256 Arabic Algeria
1404 ZHM 950 Chinese (Traditional) Macao S.A.R.
1407 DEC 1252 German Liechtenstein
1409 ENZ 1252 English New Zealand
140a ESC 1252 Spanish Costa Rica
140c FRL 1252 French Luxembourg
141a BSB 1250 Bosnian (Latin) Bosnia and Herzegovina
143b SMK 1252 Sami (Lule) Sweden
1801 ARM 1256 Arabic Morocco
1809 ENI 1252 English Ireland
180a ESA 1252 Spanish Panama
180c FRM 1252 French Principality of Monaco
181a SRS 1250 Serbian (Latin) Bosnia and Herzegovina
183b SMA 1252 Sami (Southern) Norway
1c01 ART 1256 Arabic Tunisia
1c09 ENS 1252 English South Africa
1c0a ESD 1252 Spanish Dominican Republic
1c1a SRN 1251 Serbian (Cyrillic) Bosnia and Herzegovina
1c3b SMB 1252 Sami (Southern) Sweden
2001 ARO 1256 Arabic Oman
2009 ENJ 1252 English Jamaica
200a ESV 1252 Spanish Bolivarian Republic of Venezuela
201a BSC 1251 Bosnian (Cyrillic) Bosnia and Herzegovina
203b SMS 1252 Sami (Skolt) Finland
2401 ARY 1256 Arabic Yemen
2409 ENB 1252 English Caribbean
240a ESO 1252 Spanish Colombia
241a SRM 1250 Serbian (Latin) Serbia
243b SMN 1252 Sami (Inari) Finland
2801 ARS 1256 Arabic Syria
2809 ENL 1252 English Belize
280a ESR 1252 Spanish Peru
281a SRO 1251 Serbian (Cyrillic) Serbia
2c01 ARJ 1256 Arabic Jordan
2c09 ENT 1252 English Trinidad and Tobago
2c0a ESS 1252 Spanish Argentina
2c1a SRP 1250 Serbian (Latin) Montenegro
3001 ARB 1256 Arabic Lebanon
3009 ENW 1252 English Zimbabwe
300a ESF 1252 Spanish Ecuador
301a SRQ 1251 Serbian (Cyrillic) Montenegro
3401 ARK 1256 Arabic Kuwait
3409 ENP 1252 English Republic of the Philippines
340a ESL 1252 Spanish Chile
3801 ARU 1256 Arabic U.A.E.
380a ESY 1252 Spanish Uruguay
3c01 ARH 1256 Arabic Bahrain
3c0a ESZ 1252 Spanish Paraguay
4001 ARQ 1256 Arabic Qatar
4009 ENN 1252 English India
400a ESB 1252 Spanish Bolivia
4409 ENM 1252 English Malaysia
440a ESE 1252 Spanish El Salvador
4809 ENE 1252 English Singapore
480a ESH 1252 Spanish Honduras
4c0a ESI 1252 Spanish Nicaragua
500a ESU 1252 Spanish Puerto Rico
540a EST 1252 Spanish United States