英語版のWindows版があり、現在はこれをデバッグできませんが、私は2つの言語のアプリケーションをローカライズしています。私は、次のコードは、アプリケーションのコンストラクタで十分なはずです理解して何からSilverlightのローカリゼーション - Windowsのcultureをオーバーライドする方法
:
if (Language == Language.Russian) {
Thread.CurrentThread.CurrentCulture = RUSSIAN_CULTURE;
Thread.CurrentThread.CurrentUICulture = RUSSIAN_CULTURE;
}
else {
Thread.CurrentThread.CurrentCulture = ENGLISH_CULTURE;
Thread.CurrentThread.CurrentUICulture = ENGLISH_CULTURE;
}
文化オブジェクトは、正しい文化(RU-RU、EN-US)です。
しかし、アプリケーションがロシア語のウィンドウで実行されるとき、ifは無視され、ロシア語の文字列のみが使用されます。
言語の変更は、私のマシン上で完全に正しい動作することに注意してください(Windowsのエン)
時には、現在のスレッドでのみlangaugeを設定するだけでは不十分な場合があります。一部のコントロール(別名DataGrid)はこの値を無視します。 UserControlsのLanguageプロパティも同様に設定する必要があります。this.Language = System.Windows.Markup.XmlLanguage.GetLanguage(System.Threading.Thread.CurrentThread.CurrentCulture.Name); – Jehof
アプリケーションの一部がrusだった場合、他のeng。それは問題になる可能性があります。しかし、TextBlockのような単純なコントロールは、Thread.CultureInfoを尊重する必要があります。アプリがru windowsで実行されたときに英語で何かを表示するコントロールの例はありません。 –