누군가 .NET 프레임 워크 의 차이점 Culture
과 UICulture
.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 문화와 문화를 설정할 수 있습니다.