用于wpf用户控制的多语言资源

时间:2014-12-19 06:57:57

标签: wpf vb.net user-controls resourcebundle

我正在构建一个wpf用户控件来为数据库记录提供导航功能。

enter image description here

控件提供了一组默认图像(如上所示),最终用户可以根据需要进行更改。此外,最终用户可以选择完全省略图像。如果他们选择该选项(对于构成控件的一个或所有按钮),我提供了一些默认的后备文本。

enter image description here

如果最终用户愿意,也可以覆盖此文本,但默认文本至少为他们提供了一些基本文本,这些文本基本上传达了按钮的功能,并保存了每次使用控件时都必须添加文本的内容。 (还提供了默认的工具提示文本)。

现在,如果您恰好说英语,或者您的目标受众是英语,那么这应该可行,但它并不像英语以外的其他语言那样适用。我现在想改变。

我在多语言资源和wpf主题上所做的阅读似乎假设人们正在讨论整个应用程序,而不是可能在不同语言环境中使用的独立用户控件。

我与一个控件创建者进行了一次谈话,他们说制作这种多语言可能涉及为每种预期语言构建控件的几个副本。

鉴于此,我有两个问题。我说话的绅士是否正确,我是否应该为每种语言构建多个副本,是否有办法在用户控件的同一副本中拥有多语言资源?

如果后者可能,那么实现这一目标的正确方法是什么。我们将总共处理11个按钮的默认文本(我需要能够在控件中的代码中偶然引用)和13个工具提示的默认文本(这也需要能够在控制代码)。

1 个答案:

答案 0 :(得分:1)

查看WPF localization extension

这里有一个非常好的文档:link

您可以定义控件'可本地化的属性,用于将其本地化值存储在卫星资源程序集中。

在xaml代码中,使用xaml扩展语法定义本地化属性:

<Button Content="{lex:Loc Test}" />

然后,为您的应用程序支持的每种文化创建资源文件,并为它们指定与主程序集相同的名称以及常规或特定文化代码(例如 en-US de < / em>, de-AT ,...)在 .resx 结束之前产生: AssemblyName.CultureCode.resx。

现在,使用您的本地化属性键/值对填充资源文件并构建项目。

你完成了!