2012-12-18 5 views
5

여러 프로젝트와 스레드가있는 솔루션에서 여러 언어를 지원하려고합니다.전체 솔루션의 현재 culture 설정

리소스 파일이 2 개 있습니다. 하나는 영어 문자열이고 다른 하나는 프랑스어 문자열입니다.

Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo(isEnglish ? "en-US" : "fr-CA"); 

전체 솔루션, 세계적으로 현재의 문화를 설정하는 방법이 있나요, 아니면 제가해야하는 각 스레드에 대해이 작업을 수행해야 할 다음과 같이 내가 현재의 문화를 설정하고있어

액세스 문자열?

답변

10

.NET Framework 4.5에서 CultureInfo.DefaultThreadCurrentCulture Property은 현재 응용 프로그램 도메인의 스레드에 대한 기본 culture를 가져 오거나 설정합니다. 기본적으로 .NET 프레임 워크 4 및 이전 버전의

, 모든 스레드의 문화 는 Windows 시스템 문화로 설정됩니다. 현재 문화권이 기본 시스템 문화권과 다른 응용 프로그램의 경우이 동작은 종종 바람직하지 않습니다. .NET Framework 4.5에서 DefaultThreadCurrentCulture 속성을 사용하면 응용 프로그램에서 을 응용 프로그램 도메인의 모든 스레드의 기본 culture로 정의 할 수 있습니다.

0

CurrentThread을 설정하면 응용 프로그램이 실행되는 동안 설정됩니다. UI을 초기화하기 전에 먼저 확인하십시오. 자세한 내용은 MSDN blog을 참조하십시오.

4

당신은 Web.config의에서 system.Web 내에서 세계화 섹션을 추가 할 수 있습니다

<globalization culture="en-US" uiCulture="en-US" />