2012-02-01 3 views
27

App.Config 파일을 통해 응용 프로그램의 culture를 설정해야 각 작업의 culture를 수동으로 알릴 필요없이 날짜를 구문 분석하는 데 "pt-BR"이 자동으로 사용됩니다.어떻게 CultureInfo.CurrentCulture를 App.Config 파일에서 설정합니까?

필자가 아는 한 섹션이 Web.Config 파일의 system.web 섹션에 정의되어 있지만 콘솔 응용 프로그램을 실행 중이며이를 파악할 수 없습니다.

아이디어가 있으십니까?

답변

22

나는의 App.config에서 그것을 설정하는 기본 방법을 알고하지 않습니다,하지만 당신은 그 값을 읽어이

<configuration> 
    <appSettings> 
     <add key="DefaultCulture" value="pt-BR" /> 
    </appSettings> 
</configuration> 

처럼의 App.config에 키를 정의하고 응용 프로그램의 수 문화를 설정하고

CultureInfo culture = new CultureInfo(ConfigurationManager.AppSettings["DefaultCulture"]); 
Thread.CurrentThread.CurrentCulture = culture; 
Thread.CurrentThread.CurrentUICulture = culture; 
+1

타사 프로그램에는 작동하지 않습니다. –

+1

응용 프로그램에서 시스템 문화권을 재정의하려는 경우이 방법이 필요하다고 생각합니다. 일반적으로 문화권은 운영 체제 설정에서 자동으로 선택되어야합니다. 이와 같이 문화를 하드 코딩하는 것이 아니라 일반적으로 지역 및 언어가 올바르게 설정된 클라이언트 컴퓨터에 의존합니다. – Mick

1

나 자신 그러나 명백하게하지 마라. 는 일찍이이 UICulture의 경우 InitialiseComponent 전에 즉, 수, 그냥

Thread.CurrentThread.CurrentCulture = new CultureInfo("pt-BR") 

및 또는

Thread.CurrentThread.CurrentUICulture = new CultureInfo("pt-BR") 

아무것도 당신이

개인적으로 사용 InvariantCulture에 대한 현재의 문화를 사용하지 않으있어 , 나는 현재 문화를 혼자 남겨두고 싶습니다. 모든 세계화에 대해 InvariantCulture를 사용하십시오. 은 변하지 않습니다.은 다양하게 변합니다. 그런 다음 프로젝트 속성에서 중립적 인 문화권을 설정하십시오.

나는 현재의 문화를 고치는 느낌이 들기 때문에 사용자의 개인적인 선택이 고의적 인 일종의 다른 사람이 되더라도 코드가 작동합니다.

+0

"개인적"사항에 대해 - 영국 시스템을 고객의 사이트에 배포하는 경우 골드 이미지가 기본 미국 문화입니까? 이것은 영국에서 항상 발생합니다.'{0 : c}'에 달러 기호가 표시되면 불만을 제기합니다! – tommed

+2

그들이 미국 문화를 원한다면 어떤 농구대 점핑이 필요하지 않습니까? 나는 그 시점에서 다중 통화 응용 프로그램으로 취급한다고 생각합니다. 즉, 각 통화 값에 통화 속성이 있고 통화를 기본값으로 설정하지 않아도 문화를 그대로 둡니다. –

+0

나는 동의하지 않는다. ASP.NET이 무료로 제공하는 수치스러운 일이다. 세계화는 system.web의 일부이다. – tommed

-2

using System.Threading;

Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo ("bn-BD");

// 방글라데시. 모든 페이지 양식로드 이벤트에이 줄을 사용합니다.

관련 문제