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

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

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

ResourceManager クラスを使用すると、実行時にカルチャ固有のリソースにアクセスしたり、アプリケーションがリソース フォールバック プロセスによってリソースを取得する方法を制御できます。詳細については、「リソースのパッケージ化と配置」の「リソース フォールバック プロセス」を参照してください。ResourceManager は、現在のスレッドの CultureInfo.CurrentUICulture プロパティに基づいて、どのリソースを取得するのかを判断します。たとえば、アプリケーションのコンパイル時に、メイン アセンブリの既定の英語リソースと、フランス語とドイツ語のリソース用のリソースを含む 2 個のサテライト アセンブリを使用し、さらに CurrentUICulture プロパティを "de" と設定した場合、ResourceManager はドイツ語リソースを取得します。

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

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

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

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

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

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

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

参照

関連項目

CultureInfo Class
CultureInfo.CurrentUICulture Property

概念

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

その他の技術情報

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