* 다국어 지원을 수동으로 지원 할 필요성이 있을때가 있다.
* rexs파일로 지원을 하고 있는것 같지만 나의 실력이 부족하여 너무 어렵다.
* 그래서, 나는 리소스 사전을 이용하기로 마음 먹었다. 인터넷을 참고하여 작성해보았다.
* 파일을 추가한다. 다국어 언어를 담고 있을 리소스 사전 파일들이다. 추가>ResourceDictionary 로 해당 파일을 추가하자.
StringResources.en-US.xaml
StringResources.ko-KR.xaml
* 위의 두파일 내용
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:system="clr-namespace:System;assembly=mscorlib">
<system:String x:Key="Test">연습</system:String>
</ResourceDictionary>
* 프로그램 시작시 해당 랭귀지 파일중 하나를 선택한다.
protected override void OnStartup(StartupEventArgs e)
{
languageChange("ko-KR");
base.OnStartup(e);
}
public static void languageChange(string type) {
CultureInfo culture = new CultureInfo(type);
Thread.CurrentThread.CurrentCulture = culture;
Thread.CurrentThread.CurrentUICulture = culture;
Application.Current.Resources.MergedDictionaries.Add(new ResourceDictionary()
{
Source = new Uri(string.Format("StringResources.{0}.xaml",type), UriKind.Relative)
});
}
* 이렇게 하고, 언어를 변경 하고 싶을때 언제든지 languageChange를 호출하면 된다.
App.languageChange("en-US");
* 아...C#을 시작한지..얼마 안되었지만 졸라 꼼수만 늘고 있다 (-_ㅡ);
'C#의 속삭임' 카테고리의 다른 글
[C#][WPF][MVVM]TreeView (0) | 2014.04.30 |
---|---|
[C#][Window]Window의 계층구조 만들기. (0) | 2014.04.24 |
[C#][Application][Event]Application의 시작과 종료 이벤트 (0) | 2014.04.24 |
[C#][WPF][이벤트 기초]이벤트 (0) | 2014.04.24 |
[C#][WPF] 클래스 계층도 (0) | 2014.04.23 |