특정 문화권의 리소스 찾기 및 사용
업데이트: 2007년 11월
공용 언어 런타임에서는 위성 어셈블리에서 패키지되고 배포된 문화권 관련 리소스를 검색하기 위한 지원을 제공합니다. 위성 어셈블리는 리소스 파일 또는 .gif와 같은 간단한 리소스 파일만 포함하며 실행 코드는 포함하지 않습니다.
위성 어셈블리 배포 모델을 사용하여 하나의 기본 어셈블리(주 어셈블리)와 여러 개의 위성 어셈블리를 가지는 응용 프로그램을 만듭니다. 기본 또는 중립 어셈블리의 리소스를 주 어셈블리와 함께 패키지하고 응용 프로그램에서 지원하는 각 언어에 대해 별도의 위성 어셈블리를 만들어야 합니다. 위성 어셈블리는 주 어셈블리의 일부가 아니므로 응용 프로그램의 주 어셈블리를 바꾸지 않고도 특정 문화권에 해당하는 리소스를 손쉽게 바꾸거나 업데이트할 수 있습니다.
ResourceManager 클래스를 통해 런타임에 문화권별 리소스에 액세스할 수 있으며, 리소스 대체(fallback) 프로세스를 사용하여 응용 프로그램에서 리소스를 검색하는 방법을 제어할 수 있습니다. 자세한 내용은 리소스 패키징 및 배포 항목의 "리소스 대체(fallback) 프로세스" 하위 항목을 참조하십시오.
ResourceManager 개체는 현재 스레드의 CurrentUICulture 속성에 따라 검색할 리소스를 결정합니다. 예를 들어 주 어셈블리에 기본 영어 리소스가 사용되고 프랑스어 및 독일어 리소스가 들어 있는 두 위성 어셈블리가 있는 응용 프로그램을 컴파일한 경우 CurrentUICulture 속성을 "de"로 설정하면 ResourceManager 개체가 독일어 리소스를 검색합니다.
여러 가지 방법으로 CurrentUICulture 속성을 설정할 수 있습니다. 이 속성을 설정하는 방법은 ResourceManager에서 문화권에 따라 리소스를 검색하는 방법에 영향을 줍니다.
응용 프로그램 코드에서 CurrentUICulture 속성을 특정 문화권으로 설정할 수 있습니다. 응용 프로그램에서 명시적으로 이 속성을 설정하면 사용자의 브라우저나 운영 체제 언어와 관계없이 항상 해당 문화권의 리소스가 검색됩니다. 기본 영어 리소스 및 프랑스어와 독일어 리소스를 포함하는 두 개의 위성 어셈블리로 컴파일된 응용 프로그램의 경우 CurrentUICulture 속성을 "de"로 설정하면 ResourceManager는 운영 체제 언어가 프랑스어로 설정된 경우에도 항상 독일어 리소스를 검색합니다. 응용 프로그램에서 이 속성을 명시적으로 설정하기 전에 이 동작이 바람직한지 검토해야 합니다.
참고 ASP.NET 응용 프로그램에서는 서버의 설정이 들어오는 클라이언트 요청과 일치할 가능성이 거의 없으므로 CurrentUICulture를 명시적으로 설정해야 합니다.
응용 프로그램에서 CurrentUICulture 설정을 지정하지 않으면 CurrentUICulture 속성이 암시적으로 설정됩니다. 응용 프로그램에서 이 속성을 명시적으로 설정하지 않으면 사용자가 기본 언어를 설정할 수 있는 Windows 2000 및 Windows XP MUI(Multilingual User Interface) 제품의 GetUserDefaultUILanguage 함수에 의해 설정됩니다. 사용자가 UI 언어를 설정하지 않았으면 운영 체제 리소스의 언어인 시스템 설치 언어에 의해 설정됩니다.
참고 웹 기반 응용 프로그램의 경우 CurrentUICulture를 사용자 브라우저가 허용하는 언어로 명시적으로 설정할 수 있습니다.
CurrentUICulture 속성 설정에 대한 예제를 보려면 CurrentUICulture 속성 사용을 참조하십시오.
특정 문화권의 리소스 검색에 대한 자세한 내용은 위성 어셈블리의 리소스 검색 및 ASP.NET 응용 프로그램의 리소스를 참조하십시오.