.net 如何在WPF应用程序(Windows XP)中全局设置区域性?
我有一个WPF应用程序,它使用第三方控件(如),还提供翻译后的UI(特别是德语,这是我的应用程序的默认语言和唯一语言)。在Win7上,所有内容都以德语显示,在WinXP系统(德语UI)上,第三方控件仍然加载英语资源 我现在已经试过了.net 如何在WPF应用程序(Windows XP)中全局设置区域性?,.net,c,localization,culture,.net,C,Localization,Culture,我有一个WPF应用程序,它使用第三方控件(如),还提供翻译后的UI(特别是德语,这是我的应用程序的默认语言和唯一语言)。在Win7上,所有内容都以德语显示,在WinXP系统(德语UI)上,第三方控件仍然加载英语资源 我现在已经试过了 Thread.CurrentThread.CurrentUICulture = CultureInfo.GetCultureInfo("de-DE"); 还有这个 Thread.CurrentThread.CurrentCulture = CultureInfo.
Thread.CurrentThread.CurrentUICulture = CultureInfo.GetCultureInfo("de-DE");
还有这个
Thread.CurrentThread.CurrentCulture = CultureInfo.GetCultureInfo("de-DE");
这导致了所有XAML文件都无法加载,应用程序在加载后几乎已损坏:
这是:
[assembly: NeutralResourcesLanguageAttribute("de")]
现在我几乎没有主意了。还有什么建议吗
除了
UICulture
,它根本不起作用,我正在使用上面在App.OnStartup
中组合的所有方法,但没有达到预期效果。尝试链接中的语法
Thread.CurrentThread.CurrentUICulture=CultureInfo.CreateSpecificCulture(“fr”) 问题实际上要简单得多,但我完全忽略了它:翻译的资源位于satellite*.resources.dll程序集中。在我自己的机器上,这些文件由编译器复制到输出目录(到相应的语言代码子目录),在测试机器上(在本例中为XP),这些文件丢失,因为它们尚未添加到安装程序包中
添加*.resources.dll文件后,所有文件都正常工作 根据文档,CurrentUICulture是只读的(get),但在示例中,他们分配了它。谢谢,但我相信在这种情况下CultureInfo.GetCultureInfo和CultureInfo.CreateSpecificCulture之间没有区别。我自己发现这个问题,其实要简单得多。在我的机器上,情况就不同了。创建已更改的当前值,而GetCulture未更改当前值。
FrameworkElement.LanguageProperty.OverrideMetadata(typeof(FrameworkElement), new FrameworkPropertyMetadata(XmlLanguage.GetLanguage(CultureInfo.CurrentCulture.IetfLanguageTag)));
[assembly: NeutralResourcesLanguageAttribute("de")]