多言語マージ モジュール
多言語モジュールでは、複数の異なる言語を含むコンポーネントを 1 つの複合ファイルとして提供できます。 多言語マージ モジュールの設計と機能は、単一言語モジュールに似ています。 多言語マージ モジュールには、Template Summary プロパティにリストされている複数の言語が含まれます。 多言語マージ モジュールのデータベースには、複数の言語のすべてのセットアップ情報が含まれています。 多言語マージ モジュール内の MergeModule.CABinet キャビネットには、サポートされているすべての言語のすべてのファイルが含まれます。
多言語の .msm ファイルを .msi ファイルに適用する場合、マージ後にインストール パッケージの最終言語を指定する必要があります。 単一言語マージ モジュールの場合、マージ モジュールの File テーブルには、MergeModule.CABinet キャビネットに存在するすべてのファイルがリストされます。 多言語マージ モジュールの場合、MergeModule.CABinet にはモジュールでサポートされているすべての言語のすべてのファイルが含まれますが、モジュールの File テーブルには最終言語のファイルのサブセットのみが含まれます。 マージ ツールで、モジュールが要求された最終言語に必要な情報とファイルのサブセットを提供していることを確認する必要があります。
すべてのマージ モジュールには、ModuleSignature テーブルの Language 列で指定される既定の言語があります。 マージ モジュールの既定の言語は、Template Summary プロパティで最初または唯一の言語としても示されます。 マージ ツールは、要求された最終言語とモジュールの既定の言語に基づき、多言語マージ モジュールに言語変換を適用する場合があります。これにより、その多言語マージ モジュールを、要求された言語または要求された言語に近い言語で開くことができるようになります。 言語変換はマージ モジュール内に埋め込まれます。 マージ ツールは、必ず次の一般的な規則に従って言語変換を適用します。
- 既定の言語と最終言語が同じ場合、言語変換を使用せずにモジュールをマージできます。
- 既定の言語が 0 (ニュートラル言語モジュール) の場合、言語変換を使用せずにモジュールをマージできます。
- 最終言語が既定の言語ではない場合、マージ ツールは必ず、モジュールに埋め込まれているいずれかの言語変換を適用して、モジュールを最終言語または最終言語に近い言語に変更します。
たとえば、最終言語が 1033 (米国英語) で、モジュールの既定の言語が 1033 (米国英語)、0 (ニュートラル言語)、または 9 (汎用英語) である場合、言語変換は必要ありません。
最終言語が 1033 (米国英語) で、既定の言語が 1031 (ドイツ語) の場合は、言語変換が必要です。 この場合、マージ ツールは最初に、多言語モジュール内で埋め込まれている 1033 (米国英語) への言語変換を検索します。 これが失敗した場合、セカンダリ LANGID が一致しない場合でも、プライマリ LANGID が一致する言語への変換を検索します。 たとえば、1033 (米国英語) への変換を検出できなかった場合、ツールは 9 (汎用英語) への変換を検索します。 これが失敗した場合、マージ ツールは 0 (ニュートラル言語) への変換を検索します。 これらの適切な変換の検索がすべて失敗すると、モジュールを開くことができなくなります。
詳細については、「多言語マージ モジュールの作成」を参照してください。