[.net] .NET에서 CultureInfo의 CurrentCulture 속성과 CurrentUICulture 속성의 차이점은 무엇입니까?

.NET에는 네임 스페이스에 CultureInfo클래스가 System.Globalization있습니다. 그것은 두 개의 유사한 특성의 모두 반환 값이 CultureInfo: 유형 CurrentCultureCurrentUICulture.

그들 사이의 차이점은 무엇입니까?

언제, 왜 어떤 것을 사용해야합니까?



답변

CurrentCulture시스템의 기본 사용자 로캘에 대한 .NET 표현입니다. 기본 숫자 및 날짜 형식 등을 제어합니다.

CurrentUICulture Windows 2000에 도입 된 설정 인 기본 사용자 인터페이스 언어를 나타냅니다. 이는 주로 앱의 UI 현지화 / 번역 부분과 관련이 있습니다.

시스템이 구성한 지역 옵션은 .NET 앱의 “현재”값입니다.

종종 그들은 둘 다 동일합니다. 그러나 내 시스템에서 그들은 다를 것입니다 : 나는 독일어 형식의 숫자와 날짜를 선호하므로 CurrentCulture독일어 일 것입니다. 그러나 모든 응용 프로그램을 영어로 선호하기 때문에 영어 일 CurrentUICulture것입니다.

주제에 대한 좋은 기사 가 있습니다. 모두 정렬하기 : CurrentCulture와 CurrentUICulture가 모두있는 이유


답변

이것은 내가 사용할 것을 기억하기 위해 사용하는 간단한 트릭입니다.

(date, currency, double).tostring = CurrentCulture

resource.fr-CA.resx file = currentUICulture


답변

동료 사용자가 수행 한 멋진 설명 외에도 웹 응용 프로그램 개발에서 중요한 부분을 추가 할 수있는 좋은 방법은 다음과 같습니다.

  • CurrentCulture웹 서버의 설정을 나타냅니다. 예를 들어 ASP.NET 웹 응용 프로그램이 독일에서 호스팅되는 경우의 값은 CutlureInfo.CurrentCulture아마도입니다 de-DE. 따라서 유형 의 기본 .ToString()형식 IFormattable은 기본 독일어 형식 ​​또는 서버 OS에서 기본값으로 설정된 형식을 사용합니다.

  • CurrentUICulture사용자 에이전트로부터 캡처 될 수 있고, 웹 사이트에 연결하는 클라이언트의 사용자 인터페이스 문화를 나타낼 수있다. 당신이 러시아에서 해당 웹 사이트를로드하는 경우 예를 들어, 로컬 설정이 러시아어를 사용하도록 설정하고, 사용자 에이전트가 서버 (오페라와 IE는하지 않도록 크롬과 파이어 폭스에 대해 자동으로 수행)에 로케일 설정을 전송하고는 CurrenUICulture것 나타냅니다 ru-RU. 이로 인해 ResourceManager를 통해 검색된 현지화 된 문자열 또는 ASP.NET aspx / ascx 파일의 현지화 표현식과 같은 리소스가 러시아어로 번역됩니다 (번역이 가능한 경우).


답변

차이점 :

  1. CurrentCultureCurrentUICulture언어 / 번역과 함께 날짜 및 통화 형식을 지정 합니다. ResourceManager문화별로 자원을 찾는 데 사용됩니다 .
  2. 의 네임 스페이스 CurrentCulture클래스에있는 System.Globalization동안 CurrentUICulture에서 온다 System.Threading.
  3. CurrentCulture세션에서 여러 요청에 걸쳐 유지되는 동안 CurrentUICulture모든 요청마다 설정해야합니다.

초상:

둘 다 System.Globalization.CultureInfo인스턴스입니다.


답변

CurrentUICulture‘en'(중립 문화)과 같은 비 국가 특정 로케일을 CurrentCulture지원 하는 반면 ‘en-GB’와 같은 국가 별 로케일 만 지원 한다는 점은 주목할 가치가 있습니다. CurrentCulture중립 문화로 설정 하면 ArgumentException.

날짜와 통화와 같은 형식이 국가 자체와 더 강력하게 연결되어 있기 때문에 표시되는 언어는 종종 국가간에 상호 교환이 가능합니다.


답변