LocBaml 메서드를 사용하여 WPF 앱을 지역화하고 있습니다. 모든 것은 .xaml 파일에 정의 된 UI에 적합합니다. 그러나 나는 codebehind에서 생성 된 몇 개의 문자열을 현지화해야합니다. 그래서 나는 this 기사에서 Microsoft가 권장하는 접근 방식을 취하려고했습니다.XAML ResourceDictionary를 사용하여 WPF 코드 숨김에서 문자열 지역화
<ResourceDictionary x:Uid="ResourceDictionary_1" 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">
<!-- String resource that can be localized -->
<system:String x:Uid="system:String_1" x:Key="localizedMessage">en-US Message</system:String>
</ResourceDictionary>
내가 다음 리소스 사전의 스페인어 버전을 포함하는 지역화 resources.dll를 생성하는 타사 도구를 사용 : 나는 같은 XAML 리소스 사전 파일이 있습니다. 내가
string localizedMessage = (string)Application.Current.Resources["localizedMessage"];
localizedMessage 전화 그러나
항상 DLL의 EN-US 버전에 정의 된 값을 반환합니다. 나는 오해를해야만한다. 문자열의 지역화 된 버전을 얻으려면 어떻게해야합니까?
어셈블리 문화를 정의 했습니까? (중립적이어야합니다.) 스레드의 문화는 en-US입니까? 아니면 지역화 된 언어입니까? 일부 XAML의 리소스를 참조하면 어떻게됩니까? (' ') –
Vlad
그건 그렇고, 매개 변수'x : Uid = "system : String_1"x : Key = "localizedMessage"는 AFAIK와 동일해야합니다. (즉,'x : Uid = "localizedMessage"x : Key = "localizedMessage"'.) – Vlad
내 AssemblyInfo.cs에는'[assembly : NeutralResourcesLanguageAttribute ("en-US", UltimateResourceFallbackLocation.Satellite)]'및 자원을 끌어 오기 위해 중단 점을 설정하면 스레드 문화와 창작물이 모두 "es" –