.NET에는 네임 스페이스에 CultureInfo
클래스가 System.Globalization
있습니다. 그것은 두 개의 유사한 특성의 모두 반환 값이 CultureInfo
: 유형 CurrentCulture
과 CurrentUICulture
.
그들 사이의 차이점은 무엇입니까?
언제, 왜 어떤 것을 사용해야합니까?
답변
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 파일의 현지화 표현식과 같은 리소스가 러시아어로 번역됩니다 (번역이 가능한 경우).
답변
차이점 :
CurrentCulture
CurrentUICulture
언어 / 번역과 함께 날짜 및 통화 형식을 지정 합니다.ResourceManager
문화별로 자원을 찾는 데 사용됩니다 .- 의 네임 스페이스
CurrentCulture
클래스에있는System.Globalization
동안CurrentUICulture
에서 온다System.Threading
. CurrentCulture
세션에서 여러 요청에 걸쳐 유지되는 동안CurrentUICulture
모든 요청마다 설정해야합니다.
초상:
둘 다 System.Globalization.CultureInfo
인스턴스입니다.
답변
CurrentUICulture
‘en'(중립 문화)과 같은 비 국가 특정 로케일을 CurrentCulture
지원 하는 반면 ‘en-GB’와 같은 국가 별 로케일 만 지원 한다는 점은 주목할 가치가 있습니다. CurrentCulture
중립 문화로 설정 하면 ArgumentException
.
날짜와 통화와 같은 형식이 국가 자체와 더 강력하게 연결되어 있기 때문에 표시되는 언어는 종종 국가간에 상호 교환이 가능합니다.