如何在Windows Presentation Foundation(WPF)中实现本地化?

时间:2008-10-07 09:12:24

标签: wpf localization

请分享一下您如何本地化WPF应用程序以支持多种语言以及帮助您使用的任何资源的经验?

感谢您的反馈。

3 个答案:

答案 0 :(得分:3)

对于我们的WPF应用程序,我们所有字符串都被本地化为ResourceDictionary中的资源,我们将其放入以该语言命名的.xaml文件中(如en-US.xaml,ja-JP.xaml等)。

例如,在应用程序的某个位置,按钮可能如下所示:

<Button Content="{StaticResource Strings.FooDialog.BarButtonText}"/>

不同语言的每个ResourceDictionary都包含一个版本:

<sys:String x:Key="Strings.FooDialog.BarButtonText">Bar!</sys:String>

ResourceDictionary在运行时动态连接到Application.Resources,如下所示:

private static void LoadLocalizedStrings(CultureInfo uiCulture)
{
   ResourceDictionary stringsResourceDictionary = new ResourceDictionary();
   stringsResourceDictionary.Source = new Uri(@"pack://application:,,,/Resources/Strings/" + uiCulture.Name + ".xaml");
   Application.Current.Resources.MergedDictionaries.Add(stringsResourceDictionary);
}

答案 1 :(得分:0)

很抱歉,如果它是模糊的(上面的问题),基本上它是关于你如何在你的应用程序中实现它以及你认为最好的方式。它基本上是理解场景。

答案 2 :(得分:0)

我刚刚使用ResourceDictionary成功地本地化了我的WPF应用程序。我使用的方法允许动态更改语言,轻松翻译,设计时支持,甚至允许部分翻译。我的工作基于http://www.geektieguy.com/2006/12/12/localizing-an-xbap-application-without-using-locbaml/

您可以在ResourceDictionary Source Binding to Module (for Localization)

部分看到我的努力