请分享您有关如何本地化 WPF 应用程序以支持多种语言的经验以及对您有帮助的任何资源?
感谢您的反馈。
对于我们的 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);
}
抱歉,如果它含糊不清(以上问题),基本上是关于您如何在应用程序中实现它以及您认为最好的方法。基本上是为了理解场景。
我刚刚使用 ResourceDictionary 成功本地化了我的 WPF 应用程序。我使用的方法允许动态更改语言、轻松翻译、设计时支持,甚至允许部分翻译。我的工作基于http://www.geektieguy.com/2006/12/12/localizing-an-xbap-application-without-using-locbaml/
您可以在以下位置看到我的部分努力:ResourceDictionary Source Binding to Module (for Localization)