1
私は最も奇妙なことを見ています。私たちのプログラムをVS 2010デバッガで実行すると、他のカルチャのリソース文字列を使用するように切り替えることができ、UIでうまくロードできます。しかし、スタンドアロンのWPFアプリケーションとしてビルドして実行する場合、テキストボックスの数値(0.000 - > 0,000)だけが変化しています。我々は、動的に別の文化にリセットするために使用するコードは次のとおりです。WPFアプリケーションでローカライズされていない文字列リソースがロードされない
private void ResetCulture(string culture)
{
// Reset the culture and reload the resources
var ci = new CultureInfo(culture);
Thread.CurrentThread.CurrentCulture = ci;
Thread.CurrentThread.CurrentUICulture = ci;
Messenger.Default.Send<CultureInfo>(ci);
}
注:MessengerはMVVMライトツールキット(私たちはWPFとSilverlightの両方のために、このコードを使用している)から来ています。最後に、このコードはSilverlightの下で完璧に動作することを述べる必要があります。
WPFが新しいカルチャのリソース文字列を読み込んで協力していないのは誰ですか?あなたは、アプリケーションを再起動する必要が
おかげで、 ダン
ここにはリソースがありますか?デバッグのプロジェクトプロパティで[Visual Studioホスティングプロセスを有効にする]チェックボックスをオフにした場合、VS内で実行するときに別の動作が表示されますか?それが行動の違いを引き起こすので私は尋ねる。チェックされると、VSはすべての参照されたアセンブリをプリロードします。チェックされていない場合は、使用されているアセンブリだけがロードされる通常のランタイムによく似ています。 – AndrewS
リソースはすべて.resxファイルからの文字列リソースであり、Forms.resxは親であり、Formsです。 .resxはすべて(Forms.Designer.csファイルと共に)子です。私はWPFプロジェクトのデバッグ設定をチェックし、 "Visual Studioホスティングプロセスを有効にする"オプションは既にチェックされていませんでした。他の考え? –
Lu10ntDan
デバッガで実行しているときに言及します。デバッガを接続せずにVS内で実行すると動作しますか?つまりCtrl + F5だから、VSはあなたのためにリソースアセンブリを生成しています。つまりde-DE \ fooassembly.resources.dllのようなサブフォルダがあります。それらを配布して同じフォルダ構造を維持していますか? – AndrewS