2012-09-25 6 views
1

우리는 여러 언어를 지원해야하는 WPF 응용 프로그램을 개발 중입니다. 우리는 개발 팀이 아는 일부 언어를 지원해야하므로 사용자 (관리자)가 해당 언어의 텍스트를 입력 할 수 있도록 동의했습니다. 그렇게하는 가장 좋은 방법은 무엇입니까?WPF 응용 프로그램의 현지화

답변

2

것은 내가 WPFLocalizationExtension

매우 좋은 경험 만들었다

많은 기능 (예 : 언어에 따라 지역화 된 이미지 자원에 바인딩)이 있으며 최고 : 무료입니다. 또한 resx 지역화 파일을로드하고 편집 할 수있는 resx 편집 도구가 있습니다.

+0

이것은 유망 해 보입니다. 나는 그것을 달리는 것을 실패하더라도. 샘플을 어디에서 얻을 수 있는지 아십니까? – TheJoeIaut

+0

예, 소스 코드를 다운로드하고 \ Tests \ XamlLocalizationTest.sln 솔루션을 엽니 다. 몇 가지 샘플이 제공됩니다. 그리고 나는 "문서"를 읽을 것을 제안합니다. 핵심은 ResourceDictionaries가 어셈블리에서 작동하도록하는 것입니다 ... – SvenG

+0

및 "WPF Localization Extenstion (시작하기)을 사용하는 바보의 안내서"를 읽을 수 있습니다. http://wpflocalizeextension.codeplex.com/discussions/283041 – SvenG

2

당신은 리소스 파일

가 능숙 디렉토리에이 파일 StringResources.xaml 추가 만들기 다음 단계

1을 따를 수 있습니다. 샘플은 다음 위치에 있습니다.

<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="close">Close</system:String> 
</ResourceDictionary> 

각 언어에 대해 하나씩 여러 파일을 만들 수 있습니다.

이이 같은 리소스를 사용하여 자원 (응용 프로그램을 시작할 때이 호출)

private void SetLanguageDictionary() 
{ 
    ResourceDictionary dict = new ResourceDictionary(); 
    switch (Thread.CurrentThread.CurrentCulture.ToString()) 
    { 
     case "en-US": 
     dict.Source = new Uri("..\\Resources\\StringResources.xaml", UriKind.Relative); 
     break; 
     case "fr-CA": 
     dict.Source = new Uri("..\\Resources\\StringResources.fr-CA.xaml", UriKind.Relative); 
     break; 
     default : 
     dict.Source = new Uri("..\\Resources\\StringResources.xaml",UriKind.Relative); 
     break; 
    } 
    this.Resources.MergedDictionaries.Add(dict); 
} 

3 추가 -

<Button  
    x:Name="btnLogin" 
    Click="btnLogin_Click" 
    Content="{DynamicResource login}" 
    Grid.Row="3" 
    Grid.Column="0" 
    Padding="10" /> 
+0

MessageBox와 같이 CodeBehind에서이 DynamicResource를 어떻게 사용할 수 있습니까? 이것은 (XAML) UI-Localization 일뿐입니다. – SeToY

+0

@SeToY 여기에 샘플이 있습니다.

관련 문제