wpfローカリゼーション拡張を使用しようとしています。WPFLocalizationExtensionは最初のコントロール(コードビハインド)を翻訳していません
私たちのボタン/コントロールのIDはすべてコードの背後に保存されています。そのため、私はコードを翻訳して翻訳サービスを作成しています。したがって、完成した翻訳をバインドするだけです。
また、外部グループが翻訳を処理するため、私たちの翻訳は別のプロジェクトに保存されています。私の翻訳方法は以下のように設定されています。
private string Translate(string id)
{
string uiString;
var locExtension = new LocTextExtension
{
Key = "XXX.UI.Resources",
ResourceIdentifierKey = id
};
locExtension.ResolveLocalizedValue(out uiString);
return uiString ?? id;
}
私のページが読み込まれると、ページの最初のボタンが翻訳されていないように見えます。最初のボタンは、変換された値ではなくButtun_BtnTxtとして戻されます。私はどのボタンがリストの最初のものかを交換しようとしました、そして、それは常に失敗する最初のものです。
再試行機能をいくつか入れても、まだ失敗します。 (上記のコードをwhileループに入れ、uistring == nullをチェックし、50000回再試行)
最初のページから離れて移動すると、ほかのすべてのページがうまく読み込まれます。翻訳もうまくいきます。私の人生のために、なぜそれが最初に翻訳されていないのか理解できません。
これまで誰かがこのようなことをしていたのですが、同じ問題がありましたか?
さらに見る必要があります。ロードされたアセンブリをチェックするためのコードが追加されました。最初の実行(失敗した場所)で、これがリソースの唯一のインスタンスです。
最初の試行が失敗した後、アセンブリをもう一度確認した後、以下のエントリも表示されます。
XXX.UI.Resources.resources, Version=0.0.0.0, Culture=de-DE, PublicKeyToken=null
XXX.UI.Resources.resources, Version=0.0.0.0, Culture=ja-JP, PublicKeyToken=null
XXX.UI.Resources.resources, Version=0.0.0.0, Culture=zh-Hans, PublicKeyToken=null
これらの読み込みが遅くなる理由、またはそれが問題の原因となるかどうかは考えられません。しかし、それは私が今考えることができる唯一のものです。