[.net] 문화와 UICulture의 차이점은 무엇입니까?

누군가 .NET 프레임 워크 의 차이점 CultureUICulture.NET 프레임 워크 의 차이점에 대해 조금 더 많은 정보를 제공 할 수 있습니까? 그들이 무엇을하고 언제 무엇을 사용해야합니까?



답변

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.


답변

Culture and UICulture

값은 두 글자 문자열 쌍이며, 첫 번째는 언어를 정의하기위한 것이고 두 번째는 지역을 정의하기위한 것입니다. 예:

en-GB여기 en대표 English하고 GB나타냅니다Great Briton

en-US여기 en대표 English하고 US나타냅니다United States

Culture날짜, 시간과 같은 문화 의존적 기능에 사용 합니다. 및 UICulture올바른 리소스 파일 로딩입니다.


답변

@Vache의 멋진 설명 외에도 고려해야 할 작은 문제 : UICulture와 Culture를 모두 페이지 수준 및 응용 프로그램 수준에서 설정할 수 있습니다.

응용 프로그램 수준에서 설정하려면 web.config에서 세계화 세션을 추가하십시오.

예 : <globalization uiCulture="es" culture="es-MX" />

특정 (개별) 페이지에 추가하기에 적합한 페이지 수준에서 설정하려면 @ page 지시문 내에서 Culture 및 UICulture 특성을 설정하십시오.

예 : <%@ Page UICulture="es" Culture="es-MX" %>


답변

UICulture 속성은 각 웹 브라우저마다 변경 될 수 있지만 Culture는 일정하게 유지됩니다.

문화권 값은 en-US 또는 en-GB와 같은 특정 문화권으로 만 설정할 수 있습니다. 이로 인해 en-US와 en-GB의 통화 기호가 다른 en에 사용할 올바른 통화 기호를 식별하지 않아도됩니다. 사용자는 브라우저에서 UI 문화와 문화를 설정할 수 있습니다.


답변