次の方法で共有


MFC アプリケーションのローカライズされたリソース: サテライト DLL

MFC Version 7.0 以降では、複数の言語にローカライズされるアプリケーションの作成に役立つサテライト DLL のサポートが強化されています。サテライト DLL は、リソースのみの DLL であり、特定の言語にローカライズされたアプリケーションのリソースが含まれています。アプリケーションの実行を開始すると、その環境に最適なローカライズ済みリソースが MFC によって自動的に読み込まれます。たとえば、英語のリソースを持つアプリケーションに、フランス語とドイツ語のリソースが含まれる 2 つのサテライト DLL を指定できます。アプリケーションを英語のシステムで実行するときは、英語のリソースが使われます。アプリケーションをフランス語のシステムで実行するとフランス語のリソースが使われ、ドイツ語のシステムの場合はドイツ語のリソースが使われます。

MFC アプリケーションのローカライズ済みリソースをサポートするために、MFC では特定の言語にローカライズされたリソースを持つサテライト DLL の読み込みを試みます。サテライト DLL には、ApplicationNameXXX.dll という名前が付けられています。ApplicationName は MFC を使用する .exe または .dll の名前であり、XXX は ENU や DEU などの 3 文字で表したリソースの言語コードです。

MFC は、以下の順番で各言語のリソース DLL の読み込みを試み、該当するリソースが見つかると停止します。

  1. (Windows 2000 以降のみ) 現在のユーザーの既定の UI 言語。GetUserDefaultUILanguage() Win32 API から返される値と同じです。

  2. (Windows 2000 以降のみ)特定のサブ言語のない現在のユーザーの既定の UI 言語。つまり、 ENC (カナダ英語のは ENU (アメリカの英語] になります)。

  3. システムの既定の UI 言語。Windows 2000 以降の場合は、GetSystemDefaultUILanguage() API から返される値です。その他のプラットフォームの場合は、OS の言語です。

  4. サブ言語が指定されていないシステムの既定の UI 言語。

  5. 3 文字で表したコード LOC を持つ見せかけの言語。

サテライト DLL が見つからない場合、MFC ではアプリケーションに含まれているリソースを使用します。

例として、アプリケーション LangExample.exe が MFC を使用し、 Windows 2000 の複数ユーザーインターフェイス システムで動作しているとします。; システムの UI 言語は ENU (アメリカの英語] であり、現在のユーザーの UI FRC (カナダのフランス語)に設定されます。MFC は、次の順番で DLL を検索します。

  1. LangExampleFRC.dll (ユーザーの UI 言語)

  2. LangExampleFRA.dll (サブ言語のないユーザーの UI 言語。この例では、(フランスの) フランス語です)。

  3. LangExampleENU.dll (システムの UI 言語)

  4. LangExampleLOC.dll

これらの DLL がどれも見つからない場合、MFC は LangExample.exe のリソースを使用します。

参照

関連項目

テクニカル ノート 57: MFC コンポーネントのローカライズ

概念

Visual C++ の DLL