지역화에서 다국어 처리 방법은 데이터베이스, 파일 등 다양한 방법으로 표현할 수 있습니다.
WPF에서는 위의 방법말고도 리소스 사전(ResourceDictionary) 및 리소스 파일(.resx)을 이용하여 XAML과 .cs에서 표현할 수 있는데요.
이번장에서는 리소스 파일(.resx)에서 처리하는 방법을 소개하겠습니다.
저의 Windows 표시 언어는 한국어로 선택되어 있고 기본 리소스 파일도 한국어로 시작을 할것입니다. 그러므로 추가적으로 영어 리소스 파일을 생성해보도록 하겠습니다.
1. 리소스 파일 생성
WPF 프로젝트 생성 시 Properties\Resources.resx이 생성되었을 것입니다. 추가적으로 영어를 사용하기 위해 Properties\Resources.en-US.resx을 생성해줍니다.
각각의 리소스 파일의 액세스 한정자는 Public으로 설정 후 문자열 리소스에서 이름에 HelloWorld, 값에 "안녕, 세계!", "Hello, world!"를 입력합니다.
2. XAML에서 사용
Window.xaml 또는 UserControl.xaml에서 네임스페이 지정 후 x:Static 마크업 확장을 사용하여 표시를 할 수 있습니다.
3. .cs에서 사용(+ Culture 임의 변경)
등록된 리소스 파일의 문자열은(Properties.Resources.HelloWorld) 정적 속성이므로 바로 쓸 수 있습니다.
또한 Culture 정적 속성을 언어에 맞게 문화권을 지정하면 변경됨을 알 수 있습니다.
보고 있는 화면을 다른 언어로 변경하고자 하는경우는 Culture 변경 후 바인딩된 모든 속성들을 Notify등을 이용해서 알려줘야 하는데 그것보다는 시스템 설정 어딘가에 설정언어를 저장하고 사용자에게 알림을 통해 프로그램 재시작을 하는것이 마음이 편안해집니다.
참고
'개발 > WPF' 카테고리의 다른 글
TextBlock의 폰트 사이즈 유동적 조절방법 (0) | 2020.11.26 |
---|