我有一个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
中的所有上述方法而没有达到预期的效果。
答案 0 :(得分:1)
问题实际上要简单得多,但我完全错过了它:翻译后的资源位于卫星* .resources.dll程序集中。在我自己的机器上,这些文件被编译器复制到输出目录(到相应的语言代码子目录),在测试机器上(在这种情况下是XP),这些文件虽然没有被添加到安装包中,但是它们都丢失了
添加* .resources.dll文件后,所有文件都按原样运行。
答案 1 :(得分:0)
尝试链接中的语法
Thread.CurrentThread.CurrentUICulture = CultureInfo.CreateSpecificCulture(“fr-FR”);