1

我想使用用户语言在 WPF(保存、打开、打印...)中打开对话框。

如何找到用户语言?如何使用该语言打开对话框?

菜单和子菜单会自动以正确的语言显示。

e.g. Command = Application.save

示例代码将不胜感激。

提前致谢。

4

2 回答 2

1

有很多方法可以给这只猫剥皮。找到看起来适合您和您的项目要求的那个。我将提供一种我使用的解决方案。

如何找到用户语言?

一台机器可以有不同的文化,每个线程甚至可以有自己的文化。文化包含显示语言和日期/数字格式信息等。

System.Globalization.CultureInfo.CurrentCulture;
System.Globalization.CultureInfo.CurrentUICulture  

出于此答案的目的,您不需要直接访问这些对象。

如何使用该语言打开对话框?

我使用资源文件 (RESX) 方法本地化我的项目。首先为您想要支持的文化和默认文化创建资源文件,就像这样。

Resources.resx
Resources.en.resx
Resources.fr.resx
Resoucess.ja.resx

如果您想具体使用完整的文化代码。
资源.ja-JP

现在将所有本地化文本添加到资源中,默认也是如此。

当显示语言不是您支持的语言集时,将使用默认值。

WPF 应用程序将选择 Windows 用户的显示区域性以选择要使用的 RESX 文件。
绑定到 XAML 中的 RESX 文件。

<TextBlock Text="{x:Static properties:Resources.Owner}"/>  
<TextBlock Text="{x:Static properties:Resources.StartDate}" />  
<TextBlock Text="{x:Static properties:Resources.EndDate}"/>  

这里我有三个静态绑定到 Resources.Owner StartDate 和 EndDate 属性的文本块。properties 关键字并未指定您将使用属性,而是指定应用程序属性组中的 Resources 对象。

如果您在使用静态绑定时遇到问题,请检查您的命名空间是否正确。请注意,您不应直接引用任何特定资源。ResourceManager 将处理正确文件的加载。
如果您需要动态语言切换,请查看网上一些不错的资源全球化教程。

于 2012-06-26T06:28:41.917 回答
0

您可以使用以下语法在 WPF 中获取用户语言...

XmlLanguage language = XmlLanguage.GetLanguage(CultureInfo.CurrentCulture.IetfLanguageTag);

我希望这能帮到您..

于 2012-06-26T06:25:11.140 回答