1

デフォルト言語である英語以外の言語で実行および表示しようとしているアプリケーションがあります。プロパティ ファイルを使用するようにすべてのテキストを割り当て、関連するプロパティ ファイルを各言語に翻訳しました。

ただし、アプリケーションを実行すると、すべて英語になります。キーボード、言語、ロケールをすべて外国語に設定しました。これは自動的に選択され、関連するプロパティ ファイルが自動的に使用されるはずですが、これは行われません。

そこにはそれほど多くの情報がないことはわかっていますが、さらに必要な場合は提供します. 私は Visual Studio 2010 からアプリケーションを実行しているので、これが影響するかどうかをさまよっていました。

私のファイル:

Strings.resx
Strings.en.resx
Strings.fr.resx

私の使用法:

Strings.HelloWorld
4

3 に答える 3

4

OS から現在のカルチャを取得し、それをそのまま使用する必要があります。

基本的に、アプリケーションの現在のカルチャをどこかに設定する必要があります。

Thread.CurrentThread.CurrentUICulture = System.Globalization.CultureInfo.CurrentCulture;

関連: Silverlight の CurrentUICulture/CurrentCulture を正しく設定するには?

于 2012-10-04T08:23:35.567 に答える
2

WPFアプリならWPFLocalizeExtensionがおすすめです。私はいつもそれを使用しています、完璧に機能します。

于 2012-10-04T08:21:12.137 に答える
0

これをここに追加すると思いました: http://www.west-wind.com/weblog/posts/2009/Jun/14/WPF-Bindings-and-CurrentCulture-Formatting

基本的に、次のコード行を App.xaml に追加します。

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

次に、アプリケーション内のすべてのコントロールの既定の言語プロパティをオーバーライドします。

ありがとう、アレックス。

于 2013-02-05T23:21:02.317 に答える