2011-11-17 13 views
0

ローカリゼーションに問題があります。間違った値を取得することがあります。ここに私の場合です:OS言語とは異なるデフォルト言語を使用しているときにローカライズが正しくない

すべてのアセンブリでは、私はNeutralResourcesLanguageをen-USに設定しました。
利用可能なリソースのリストです:デフォルト(英語)fr、de。

だから私は英語OSを持っていると私は、任意の言語を選んだ - すべてが正常である(UICultureは、専用に設定され、FRまたはデ及びれる文化は、それぞれデ-DEまたはFR-FR、EN-USです) 。

しかし、私はドイツ語OSを持っており、英語の言語を選択しました - 一部の文字列がドイツ語である(UICultureは文化は、EN-USですENとです)。私は==「デ」とThread.CurrentThread.CurrentCulture =「EN-US」Thread.CurrentThread.CurrentUICultureを残せば

はまた、その後、いくつかのテキストは、この英語..

どれ説明と解決策になりますか?

答えて

0

問題が見つかりました - PropertyMetadata(Resources.Text)のような既定値でDependencyPropertyを使用していました。 DPは静的なので、実際のローカライゼーション設定がApplicationStartupハンドラに適用される前にシステム言語で初期化していました。

0

適切な言語コードを使用する必要があります。その場合、en,frdeとなります。

フランス語の翻訳が1つしかない場合は、特別な言語コードを使用しないでください。frを使用してください。

必要な場合にのみ、より特殊なものを使用してください。

アップデート:Windowsでは、OSから取得したメッセージの言語を完全に制御することはできません。通常は現在のスレッドのロケールを使用しますが、OSのデフォルト言語を使用することもあり、何もできません。ユーザーの行動を記録するだけです。

+0

申し訳ありません。私はあなたを正しく理解しているとは思わない - 私は適切な言語とUICulturesを使用しています、そうではありませんか? – Walkor

+0

私は答えを更新しました。OSからの文字列のローカライゼーションは完全にあなたのコントロール下にありません。 – sorin

関連する問題