2

Windows フォーム アプリケーションのローカライズに成功しました。1 つのフォームは、ローカライズされたリソースの使用を拒否し、常に埋め込みリソースと共に表示されます。以下の点を確認しました。

  • フォームの Localizable 属性が true です
  • 実行時に UI カルチャが正しく設定されている
  • サテライト アセンブリが正しい位置にある
  • SysInternals プロセス エクスプローラーを使用して、プロセスがサテライト アセンブリを使用していることを確認しました
  • IL-Spy でサテライト アセンブリを開き、翻訳されたリソースが含まれていることを確認しました
  • デバッガーで、ボタンの Microsofts ComponentResourceManager.ApplyResources Method にステップインしました。text プロパティが見つかりますが、コードが最適化されているため、本当に興味深いものを見ることができません。

他のすべてのフォーム (さまざまなアセンブリ) は正しい言語で表示されますが、これは 1 つだけです ... 誰かが役立つアイデアを持っていることを願っています。

4

1 に答える 1

0

同じ問題に出くわしましたが、解決できました。

ローカライズされた resx ファイルをプロジェクトにインポートしました。したがって、*.de.resx はプロジェクトの一部でしたが、ローカライズされたリソースがすべてのフォームに適用されたわけではありません。

http://msdn.microsoft.com/library/y99d1cd3%28v=vs.110%29.aspxを参照すると、ローカライズされたリソース ファイルがフォームの下に (サブ項目として) 表示されます。

したがって、私の解決策は次のとおりです。-すべてのフォームを調べて、言語をデフォルトからドイツ語に変更し、デフォルトに戻します。- その結果、*.de.resx ファイルはフォームのサブアイテムとしてリストされていました - 次に、作成されたばかりの *.de.resx ファイルをローカライズされたファイルで上書きします

その後、すべてのフォームで機能します。ただし、以前は 4 つのうち 3 つのフォームで機能していた理由はわかりません。

Windows フォーム アプリケーションに新しい言語を追加するための推奨される方法は何ですか? 新しい言語用の空の resx ファイルを作成するために、アプリケーションのすべてのフォームをクリックする必要がありますか? もちろん、プロジェクト ファイルを手動で編集することもできます...

于 2014-04-15T14:35:26.327 に答える