2009-06-12 2 views
32

언제 CultureInfo를 호출해야합니까?(String)이 아니라 CultureInfo입니다. GetCultureInfo (문자열). MSDN 설명서가 명확하지 않습니다.CultureInfo.GetCultureInfo (String) 또는 CultureInfo.CreateSpecificCulture (String)를 사용하는 경우

또한 문화의 이름이 유효한지 확인하는 방법이 더 저렴합니까?

당신이 오류가 발생합니다보다는 "엉"통과 CultureInfo.CreateSpecificCulture에 "EN-GB"(문자열) 경우에 나는 생각 하지만 CultureInfo.GetCultureInfo (문자열) 상관하지 않습니다. 예 : CultureInfo.GetCultureInfo (String)는 언어 만 전달하면 대처할 수 있습니다. 그러나 나는 아직도 이것에 대해 불분명하다.

답변

10

문화에 필요한 것이 조금 다릅니다. 짧은 이름 ("en", "fr"등)은 언어 별 자원 관리에 충분한 중립 문화에 사용됩니다. 그러나 숫자 및 날짜 형식을 지정하려면 "en-GB"와 같은 특정 문화권이 필요합니다.

여기에서 CultureInfo.CreateSpecificCulture("en");은 정상적으로 작동합니다. 그것은 특히 중립적 인 문화를위한 특정한 문화를 얻는 것을 목적으로합니다.

19

문화는 불변의 문화, 중립적 인 문화 및 특정 문화의 3 가지 세트로 그룹화됩니다. 배양 물 en은 중성 배양 물인 반면, 배양 물 en-US은 특정 배양 물이다.

GetCultureInfo 귀하가 요청한 문화권을 제공하므로 중립적 인 문화권을 신청하면 en과 같은 중립적 문화권을 얻을 수 있습니다.

CreateSpecificCulture은 중립 문화권의 특정 문화권을 만들므로 CreateSpecificCulture("en")으로 전화하면 CultureInfoen-US 문화권입니다. 중립 문화가 특정 문화권에 어떻게 매핑되어 있는지는 잘 모르겠지만 BCL 또는 Windows 내부에 이러한 매핑이 포함 된 테이블이 있어야하며 en-US이고 반환되는 것은 en-GB이 아니라고 결정해야합니다. 특정 문화권을 CreateSpecificCulture의 인수로 지정하면 해당 CultureInfo과 마찬가지로 GetCultureInfo과 같이 나타납니다.

그러나 생성 된 특정 문화의 다소 놀라운 기능이있다 :

이 메소드에 의해 반환되는 특정 문화의 문화 식별자가 현재 Windows 문화의 문화 식별자와 일치하는 경우,이 방법은은 CultureInfo를 생성 Windows 문화권 재정의를 사용하는 개체입니다. 재정의에는 DateTimeFormat 속성에서 반환 된 DateTimeFormatInfo 개체의 속성에 대한 사용자 설정과 NumberFormat 속성에서 반환 한 NumberFormatInfo 개체가 포함됩니다. 이 의미

CreateSpecificCulture에 의해 반환되는 특정 문화가 다음 Windows에서 지역 및 언어 제어판에서 사용자가 선택한 문화를 일치하는 경우 그 문화에 대한 사용자 지정이 반환 CultureInfo에 포함되어 있다는 것입니다. 예 : 사용자는 숫자에 사용 된 긴 날짜 패턴이나 소수 구분 기호를 변경할 수 있습니다. 이것에 대해 생각해 볼 수있는 또 다른 방법은 CreateSpecificCultureCurrentCulture의 이름과 일치하는 문화권을 반환하면 모든 사용자 지정을 포함하여이 문화권을 실제로 반환합니다.

내가 알 수있는 한 GetCultureInfo에는이 속성이 없으며 항상 수정되지 않은 CultureInfo을 반환합니다.

문화가 유효한지 확인하려면 GetCultureInfo을 사용합니다.

관련 문제