2012-11-27 2 views
0
System Locale:    en-us;English (United States) 
Input Locale:    en-us;English (United States) 

systeminfo.exe를 실행하면 유용한 정보에 위의 두 줄이 포함됩니다. Windows API 또는 C 런타임 함수가 문자열을 제공합니까? 영어 (미국)?systeminfo.exe와 같은 Locale 문자열에서 "Human Readable"문자열을 검색하는 방법은 무엇입니까?

+2

어딘가에 레지스트리에 아주 잘 위치 할 수 있습니다. 나는 네가 보여줄 수 있다는 것을 안다. 하지만 로캘을 요청할 때 .net의 백그라운드에서 어떤 일이 발생하는지 알지 못합니다. 이것을보십시오 : http://msdn.microsoft.com/en-us/library/system.globalization.cultureinfo.englishname.aspx 당신은 CurrentCulture.DisplayName/EnglishName/Name을 사용할 수 있습니다. –

+0

Mikes의 의견은 저와 제가 내 눈앞에있는 "GetLocaleInfoEx"메소드를 완전히 놓쳤습니다! [http://stackoverflow.com/questions/2649676/c-win32-api-equivalent-of-cultureinfo-twoletterisolanguagename][1] [1] : http://stackoverflow.com/questions/2649676/c-win32-api-culture-of-cultureinfo-twoletterisolanguagename – ErnieE

답변

0

GetLocaleInfo과 함께 할 수 있습니다. LCTYPE은 LOCALE_SENGLANGUAGE/LOCALE_SENGCOUNTRY입니다.

#include <windows.h> 
#include <stdio.h> 

int 
main() { 
    char language[256] = {0}, country[256] = {0}; 
    GetLocaleInfo(
    GetUserDefaultLCID(), 
    LOCALE_SENGLANGUAGE, 
    language, 
    sizeof(language)); 
    GetLocaleInfo(
    GetUserDefaultLCID(), 
    LOCALE_SENGCOUNTRY, 
    country, 
    sizeof(country)); 
    printf("%s (%s)\n", language, country); 
} 
// I got "Japanese (Japan)" 
관련 문제