0

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

我现在已经试过了

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没有达到预期的效果。

4

2 回答 2

1

问题实际上要简单得多,但我完全错过了:翻译的资源位于卫星 *.resources.dll 程序集中。在我自己的机器上,编译器将这些文件复制到输出目录(到相应的语言代码子目录),在测试机器(本例中为 XP)上,这些文件丢失了,因为它们尚未添加到安装包中.

添加 *.resources.dll 文件后,一切正常。

于 2012-07-11T08:04:37.560 回答
0

尝试链接中的语法

文化

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

于 2012-07-09T14:40:33.277 回答