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 の読み込みを試み、該当するリソースが見つかると停止します。
(Windows 2000 以降のみ) 現在のユーザーの既定の UI 言語。GetUserDefaultUILanguage() Win32 API から返される値と同じです。
(Windows 2000 以降のみ)特定のサブ言語のない現在のユーザーの既定の UI 言語。つまり、 ENC (カナダ英語のは ENU (アメリカの英語] になります)。
システムの既定の UI 言語。Windows 2000 以降の場合は、GetSystemDefaultUILanguage() API から返される値です。その他のプラットフォームの場合は、OS の言語です。
サブ言語が指定されていないシステムの既定の UI 言語。
3 文字で表したコード LOC を持つ見せかけの言語。
サテライト DLL が見つからない場合、MFC ではアプリケーションに含まれているリソースを使用します。
例として、アプリケーション LangExample.exe が MFC を使用し、 Windows 2000 の複数ユーザーインターフェイス システムで動作しているとします。; システムの UI 言語は ENU (アメリカの英語] であり、現在のユーザーの UI FRC (カナダのフランス語)に設定されます。MFC は、次の順番で DLL を検索します。
LangExampleFRC.dll (ユーザーの UI 言語)
LangExampleFRA.dll (サブ言語のないユーザーの UI 言語。この例では、(フランスの) フランス語です)。
LangExampleENU.dll (システムの UI 言語)
LangExampleLOC.dll
これらの DLL がどれも見つからない場合、MFC は LangExample.exe のリソースを使用します。
参照
関連項目
テクニカル ノート 57: MFC コンポーネントのローカライズ