固有カルチャのリソースの検索と使用

更新 : 2007 年 11 月

共通言語ランタイムでは、サテライト アセンブリでパッケージ化および配置されたカルチャ固有のリソースの取得操作がサポートされています。サテライト アセンブリには、リソース ファイルや GIF ファイルなどの柔軟なリソースが含まれています。実行可能コードは一切含まれません。

サテライト アセンブリの配置モデルでは、1 つの既定アセンブリ (メイン アセンブリ) といくつかのサテライト アセンブリを使用するアプリケーションを作成します。既定またはニュートラルなアセンブリのリソースをメイン アセンブリと共にパッケージ化し、アプリケーションでサポートする各言語についてサテライト アセンブリを個別に作成する必要があります。サテライト アセンブリはメイン アセンブリの一部には含まれないため、アプリケーションのメイン アセンブリを交換しなくても、固有カルチャに対応するリソースだけを簡単に交換または更新できます。

ResourceManager クラスを使用すると、実行時にカルチャ固有のリソースにアクセスしたり、アプリケーションがリソース フォールバック プロセスによってリソースを取得する方法を制御できます。詳細については、「リソースのパッケージ化と配置」の「リソース フォールバック プロセス」を参照してください。

ResourceManager オブジェクトは、現在のスレッドの CurrentUICulture プロパティに基づいて、どのリソースを取得するのかを判断します。たとえば、アプリケーションのコンパイル時に、メイン アセンブリ内の既定の英語リソースと、フランス語とドイツ語のリソース用のリソースを含む 2 個のサテライト アセンブリを使用し、さらに CurrentUICulture プロパティを "de" に設定した場合、ResourceManager オブジェクトはドイツ語リソースを取得します。

CurrentUICulture プロパティを設定する方法は、いくつかあります。このプロパティの設定方法は ResourceManager がカルチャに基づいてリソースを取得する方法に影響する点に注意してください。

  • CurrentUICulture プロパティは、アプリケーション コード内の固有カルチャに設定できます。アプリケーションでこのプロパティを明示的に設定すると、ブラウザやオペレーティング システムの言語に関係なく、設定されたカルチャのリソースが常に取得されます。たとえば、既定の英語言語リソースとフランス語とドイツ語の言語リソースのリソースが含まれている 2 つのサテライト アセンブリを使用してコンパイルされたアプリケーションがあるとします。CurrentUICulture プロパティが "de" に設定されている場合、オペレーティング システムのシステム言語がフランス語に設定されていても、ResourceManager オブジェクトは必ずドイツ語リソースを取得します。このプロパティをアプリケーションで明示的に設定する前に、プロパティ設定が必要であることを確認してください。

    メモ   ASP.NET アプリケーションでは、サーバーの設定と着信クライアント要求が一致することがほとんどないため、CurrentUICulture を明示的に設定する必要があります。

  • CurrentUICulture を指定するアプリケーションでは、CurrentUICulture プロパティが暗黙に設定されます。ユーザーが UI 言語を設定できる MUI (Multilingual User Interface) 製品がインストールされている Windows 2000 および Windows XP では、このプロパティがアプリケーション コードで明示的に設定されていない場合、GetUserDefaultUILanguage 関数によってこのプロパティが設定されます。ユーザーが UI 言語を設定していない場合は、システム インストール言語によって UI 言語が設定されます。システム インストール言語とは、オペレーティング システム リソースの言語です。

    メモ   Web ベースのアプリケーションでは、CurrentUICulture をブラウザの受け入れ言語に明示的に設定できます。

CurrentUICulture プロパティの設定の例については、「CurrentUICulture プロパティの使用」を参照してください。

固有カルチャのリソースを取得する方法の詳細については、「サテライト アセンブリに含まれるリソースの取得」と「ASP.NET アプリケーション内のリソース」を参照してください。

参照

概念

アプリケーションのリソース

その他の技術情報

エンコーディングとローカリゼーション