반응형
아래처럼 Custom CultureInfo를 추가해야 하는 경우가 있다.
태국에 영어로 서비스를 지원하고 싶어 리소스파일(resx)을 추가하려 하는데
해당하는 culture info(en-TH)가 기본적으론 없는 경우
culture info를 직접 추가하는 방법은 다음과 같다.
var culture = new CultureAndRegionInfoBuilder("en-TH", CultureAndRegionModifiers.None);
culture.LoadDataFromCultureInfo(CultureInfo.CreateSpecificCulture("en-US"));
culture.LoadDataFromRegionInfo(new RegionInfo("th-TH"));
culture.Register();
CultureAndRegionInfoBuilder class를 이용해 새로 추가할 culture info 객체를 만들고
필요한 정보(문화정보, 지역정보)를 설정해준뒤
등록(Register) 한다.
참고사항
1.CultureAndRegionInfoBuilder class 사용을 위해 sysglobl.dll을 참조 등록해주어야 한다.
2. 프로그램 실행 시 새로 추가한 culture Info(en-TH)로 지역화가 정상 동작하지 않을 경우?
-> 빌드 결과물에 새로 추가한 CultureInfo에 해당하는 폴더 및 satellite assembly가 없을 수 있다.
그럴땐 지역화 리소스가 있는 프로젝트를 빌드한 후
리소스를 사용하는 프로젝트를 다시 빌드해 해당 폴더 및 (폴더 하위에)satellite assembly가 생기는 것을 확인한다.
반응형