답변:
Culture
문화 종속 데이터 (날짜, 통화, 숫자 등)가 표시되는 방식에 영향을줍니다. 다음은 몇 가지 예입니다.
var date = new DateTime(2000, 1, 2);
var number = 12345.6789;
Thread.CurrentThread.CurrentCulture = new CultureInfo("de-DE");
Console.WriteLine(date); // 02.01.2000 00:00:00
Console.WriteLine(number.ToString("C")); // 12.345,68 €
Thread.CurrentThread.CurrentCulture = new CultureInfo("fr-CA");
Console.WriteLine(date); // 2000-01-02 00:00:00
Console.WriteLine(number.ToString("C")); // 12 345,68 $
Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");
Console.WriteLine(date); // 1/2/2000 12:00:00 AM
Console.WriteLine(number.ToString("C")); // $12,345.68
문화는 또한 같은 방식으로 사용자 입력의 구문 분석에 영향을줍니다.
const string numberString = "12.345,68";
decimal money;
Thread.CurrentThread.CurrentCulture = new CultureInfo("de-DE");
money = decimal.Parse(numberString); // OK!
Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");
money = decimal.Parse(numberString); // FormatException is thrown, TryParse would return false
구문 분석이 성공 하지만 결과가 예상 과 다른 경우에주의하십시오 .
const string numberString = "12.345";
decimal money;
Thread.CurrentThread.CurrentCulture = new CultureInfo("de-DE");
money = decimal.Parse(numberString); // 12345
Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");
money = decimal.Parse(numberString); // 12.345, where the . is a decimal point
UICulture
응용 프로그램에서로드 할 리소스 파일 (Resources. lang .resx)에 영향을줍니다 .
따라서 독일어 리소스 (아마 현지화 된 텍스트)를로드 UICulture
하려면 독일어 문화권으로 설정 하고 (로드되는 리소스에 영향을주지 않고) 독일어 형식을 표시합니다 Culture
.
CultureInfo
자원 파일을 결정하기 위해 전체 객체 를 사용하는 것이 요점은 무엇입니까 string
? (예 :의 Language
속성 FrameworkElement
)
@Vache의 멋진 설명 외에도 고려해야 할 작은 문제 : UICulture와 Culture를 모두 페이지 수준 및 응용 프로그램 수준에서 설정할 수 있습니다.
응용 프로그램 수준에서 설정하려면 web.config에서 세계화 세션을 추가하십시오.
예 : <globalization uiCulture="es" culture="es-MX" />
특정 (개별) 페이지에 추가하기에 적합한 페이지 수준에서 설정하려면 @ page 지시문 내에서 Culture 및 UICulture 특성을 설정하십시오.
예 : <%@ Page UICulture="es" Culture="es-MX" %>