0

翻訳されたUI(特にドイツ語、これは私のアプリのデフォルトで唯一の言語)も提供するサードパーティのコントロール(http://navigationpane.codeplex.comなど)を使用するWPFアプリケーションがあります。Win7では、すべてがドイツ語で表示されますが、WinXPシステム(ドイツ語のUI)では、サードパーティのコントロールが引き続き英語のリソースをロードします。

私は今これを試しました

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 に答える