2012-11-29 5 views
3

쉘 창이 있고 일부 모듈이있는 복합 응용 프로그램이 있습니다. 각 모듈은 MEF (Microsfot Prism)를 사용하여 셸에로드됩니다. Shell 자체는 리소스 파일 기본값 (Resource.resx)과 다른 언어 (Resource.ar-SA.resx 등)에 대해서도 Localilzation을 지원합니다.XAML Resx 파일에서 값을 읽을 수 없습니다.

XAML에 대한
  • : 나는 C# 코드에서
  • x:Static Resource.KeyName을 사용했다 : 내가 필요한 문자열을 얻을 수 GetString(keyName, culture)을 사용했다.

현지화를 지원하기 위해 시스템의 현재 문화권을 가져 와서 필요한 Resx 파일을로드하는 코드 줄을 추가했습니다. 현재 문화 설정에 사용됩니다.

App.xaml.cs를

에서

Resource.Culture = 
    new System.Globalization.CultureInfo(System.Globalization.CultureInfo.CurrentCulture.Name); 

모든 이들은 완전히 잘 작동합니다.

마찬가지로 MEF를 사용하여로드 된 각 모듈에는 위에서 언급 한 것처럼 리소스 파일이 있습니다. 그러나 모듈의 경우 특정 언어 파일에 대해 Xaml에 정의 된 리소스 키가 작동하지 않습니다. 항상 Default (Resource.Resx) 파일에서 값을 가져옵니다. 그러나 ResourceManager 클래스를 사용하는 코드에서 사용되는 키는 정상적으로 작동합니다.

답변

0

모든 리소스가 "인프라"프로젝트에서 유지되므로 모든 리소스가 한 곳에서로드되므로 훨씬 간단 해졌습니다.

내 XAML 바인딩은 RESX 클래스에에 refrence를 가져옵니다이

처럼 보인다.

xmlns:resources="clr-namespace:Infrastructure.resources;assembly=Infrastructure" 

지금은 이미이 일을 할 수있는 텍스트를

Content="{x:Static resources:Resources.Activity_Regarding}" 

를 얻을 수 있지만 볼 수 없습니다. 네임 스페이스가 사용할 resx와 일치하는지 확인하고 싶을 것입니다. 그래서 네임 스페이스 네임 스페이스.

관련 문제