我想使用用户语言在 WPF(保存、打开、打印...)中打开对话框。
如何找到用户语言?如何使用该语言打开对话框?
菜单和子菜单会自动以正确的语言显示。
e.g. Command = Application.save
示例代码将不胜感激。
提前致谢。
我想使用用户语言在 WPF(保存、打开、打印...)中打开对话框。
如何找到用户语言?如何使用该语言打开对话框?
菜单和子菜单会自动以正确的语言显示。
e.g. Command = Application.save
示例代码将不胜感激。
提前致谢。
有很多方法可以给这只猫剥皮。找到看起来适合您和您的项目要求的那个。我将提供一种我使用的解决方案。
如何找到用户语言?
一台机器可以有不同的文化,每个线程甚至可以有自己的文化。文化包含显示语言和日期/数字格式信息等。
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 将处理正确文件的加载。
如果您需要动态语言切换,请查看网上一些不错的资源全球化教程。
您可以使用以下语法在 WPF 中获取用户语言...
XmlLanguage language = XmlLanguage.GetLanguage(CultureInfo.CurrentCulture.IetfLanguageTag);
我希望这能帮到您..