2012-01-20 1 views
2

나는 문화를 바꾸기 위해 잘 알려진 LocBaml 접근법을 사용한다.WPF 윈도우 생성자를 사용하여 culture를 변경할 수 있습니까?

public App() 
{ 
    // Test code 
    bool override_current_ui_language = true; 
    string locale = "es-ES"; 
    if (override_current_ui_language) 
    { 
     Thread.CurrentThread.CurrentUICulture = new CultureInfo(locale); 
     Thread.CurrentThread.CurrentCulture = new CultureInfo(locale); 
    }  
} 

을하지만 WPF Window 클래스 컨트롤러에서 동일한 사용할 때 작동하지 않습니다 :

그것은 잘 여기에 작동합니다.

실마리가 무엇입니까?


나는 이것을 사용하지만 잘 작동하지 않습니다.

void cmbLanguages_SelectionChanged(object sender, SelectionChangedEventArgs e) 
     { 
      string locale = "es-ES"; 
      Thread.CurrentThread.CurrentUICulture = new CultureInfo(locale); 
      Thread.CurrentThread.CurrentCulture = new CultureInfo(locale); 
     } 
+1

내가 당신 http://wpflocalizeextension.codeplex.com/을 추천 할 수 있습니다 사실 – ChrFin

+0

@chrfin을 (> SetUICulture을) I Easy BAML을 사용하십시오. 괜찮아. 내가 원하는 것은 wpf 콤보 박스를 사용하여 언어를 전환하는 것입니다. –

+1

죄송합니다, "Easy BAML"을 도와 드릴 수 없습니다. 왜냐하면 LocalizeExtension을 사용하여 (런타임 중) 정확히 수행 할 수 있기 때문입니다 ... – ChrFin

답변

1

나는이를 위해 LocalizeExtension을 사용합니다. 그냥 텍스트를 설정하는 {LocText NAMESPACE::RESOURCENAME}를 사용하는 .xaml과 뒤에 코드에서

하여 즉석에서 언어를 변경하려면 다음 당신은 내가 그것을 사용 CodePlex의, 내 프로젝트를 확인할 수 있습니다

Thread.CurrentThread.CurrentCulture = culture; 
Thread.CurrentThread.CurrentUICulture = culture; 
LocalizeDictionary.Instance.Culture = culture; 

, 확장 된 예를 볼 수 있습니다 :
XAMLCodeBehind - ... 스위칭 나를 위해 잘 작동 곳

+1

그 이상한 점 - 여러 응용 프로그램에서이를 사용합니다. 올바른 리소스를 만들었습니까? 'Resources.resx'는 영어로,'Resources.es.resx'는 스페인어로 사용됩니다. – ChrFin

+0

예 그게 문제였습니다. WPF 지역화 확장 프로젝트 http://wpflocalizeextension.codeplex.com/을 사용하기위한 훌륭한 조언을 주셔서 감사합니다. –

관련 문제