0

文字列を.resxファイルに保存することにより、WPFアプリケーションのローカリゼーションを行っています。私のデフォルトの(英語の)文字列リソースはstrings.resxです。他の言語の場合、フランス語の場合はstrings.fr-FR.resx、スペイン語の場合はstrings.es-ES.resxなどと呼ばれます。

このローカリゼーションの方法は、グローバリゼーションリージョンを一致するロケールに設定するとアプリが自動的に正しい文字列をロードし、そうでない場合はデフォルトで英語になるため、優れています。

実行時に、アセンブリに含まれている言語を列挙することはできますか?

これと言語が含まれているハードコードを回避することはできますが、ビルドサーバーが言語resxをまとめて動的にビルドするため、ビルドごとに変わる可能性があります。

4

1 に答える 1

2

2つのオプションがありますが、どれも理想的ではありません...

  • 既知のすべてのカルチャ(CultureInfo.GetCultures)を列挙し、このカルチャの特定のリソースを取得してみてください=>シンプルですが遅い
  • アプリケーションのディレクトリでサテライトアセンブリを探します。サブディレクトリごとに、その名前がカルチャ名(CultureInfo.GetCultureInfo)に対応しているかどうか、および.resources.dllファイルが含まれているかどうかを確認します。
于 2009-05-28T09:54:18.653 に答える