我们正在开发一个应该支持多种语言的 WPF 应用程序。由于我们必须支持一些开发团队都不知道的语言,我们同意允许用户(管理员)输入这些语言的文本。最好的方法是什么?
问问题
6920 次
2 回答
3
您可以按照以下步骤
1 创建资源文件
将此文件 StringResources.xaml 添加到 Ressources 目录。样品在这里:
<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>
您可以创建多个文件,每种语言一个。
2 添加资源(启动应用程序时调用它)
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" />
于 2012-09-25T14:14:18.097 回答
2
我在WPFLocalizationExtension方面取得了非常好的经验
它带有大量功能(例如,根据语言绑定到本地化图像资源)和最好的:它是免费的。还有一些 resx 编辑工具允许您加载和编辑您的 resx 本地化文件。
于 2012-09-25T14:23:28.447 回答