如何在WPF应用程序(Windows XP)中全局设置文化?

时间:2012-07-09 14:31:03

标签: .net c localization culture

我有一个WPF应用程序,它使用第三方控件(如http://navigationpane.codeplex.com),它还提供翻译的UI(特别是德语,这是我的应用程序的默认和唯一语言)。在Win7上,一切都以德语显示,在WinXP系统(德语用户界面)上,第三方控件仍然加载英语资源。

我现在试过这个

Thread.CurrentThread.CurrentUICulture = CultureInfo.GetCultureInfo("de-DE");

和这个

Thread.CurrentThread.CurrentCulture = CultureInfo.GetCultureInfo("de-DE");

和这(导致没有任何XAML文件被加载,之后应用程序非常腐败):

<UICulture>en-US</UICulture>

还有这个

FrameworkElement.LanguageProperty.OverrideMetadata(typeof(FrameworkElement), new FrameworkPropertyMetadata(XmlLanguage.GetLanguage(CultureInfo.CurrentCulture.IetfLanguageTag)));

和此:

[assembly: NeutralResourcesLanguageAttribute("de")]

现在我几乎没有想法。还有其他建议吗?

UICulture之外根本不起作用,我使用App.OnStartup中的所有上述方法而没有达到预期的效果。

2 个答案:

答案 0 :(得分:1)

问题实际上要简单得多,但我完全错过了它:翻译后的资源位于卫星* .resources.dll程序集中。在我自己的机器上,这些文件被编译器复制到输出目录(到相应的语言代码子目录),在测试机器上(在这种情况下是XP),这些文件虽然没有被添加到安装包中,但是它们都丢失了

添加* .resources.dll文件后,所有文件都按原样运行。

答案 1 :(得分:0)

尝试链接中的语法

Culture

Thread.CurrentThread.CurrentUICulture = CultureInfo.CreateSpecificCulture(“fr-FR”);