次の方法で共有


複数言語マージ モジュール

複数の言語モジュールは、複数の異なる言語を持つコンポーネントを 1 つの複合ファイルとして提供できます。 複数の言語マージ モジュールの設計と機能は、単一言語モジュールに似ています。 複数言語マージ モジュールの Template Summary プロパティに複数の言語が表示されます。 複数言語マージ モジュールのデータベースには、複数の言語のすべてのセットアップ情報が含まれています。 複数言語マージ モジュール内の MergeModule.CABinet キャビネットには、サポートされているすべての言語のすべてのファイルが含まれています。

複数言語の .msm ファイルを .msi ファイルに適用する場合は、マージ後にインストール パッケージの最終言語を指定する必要があります。 1 つの言語マージ モジュールの場合、マージ モジュールの ファイル テーブル MergeModule.CABinet キャビネットに存在するすべてのファイルが一覧表示されます。 複数言語マージ モジュールの場合、MergeModule.CABinet にはモジュールでサポートされているすべての言語のすべてのファイルが含まれますが、モジュールの File テーブルには最終的な言語のファイルのサブセットのみが含まれます。 マージ ツールでは、モジュールが、要求された最終言語に必要な情報とファイルのサブセットを提供していることを確認する必要があります。

すべてのマージ モジュールには、ModuleSignature テーブルの [言語] 列既定の言語が指定されています。 マージ モジュールの既定の言語は、テンプレートの概要 プロパティの最初の言語として表示されます。または、唯一の言語として表示されます。 要求された最終言語とモジュールの既定の言語に応じて、マージ ツールは言語変換を複数言語のマージ モジュールに適用して、要求された言語または要求された言語の近似値で開くことができる場合があります。 言語変換はマージ モジュール内に埋め込まれます。 マージ ツールでは、次の一般的な規則に従って言語変換を適用する必要があります。

  • 既定の言語と最終言語が同じ場合は、言語変換を使用せずにモジュールをマージできます。
  • 既定の言語が 0 (言語に依存しないモジュール) の場合、言語変換を使用せずにモジュールをマージできます。
  • 最終的な言語が既定の言語でない場合、マージ ツールでは、モジュールに埋め込まれている言語変換のいずれかを適用して、モジュールを最終言語または最終言語の近似言語に変更する必要があります。

たとえば、最終言語が 1033 (米国英語) で、モジュールの既定の言語が 1033 (米国英語)、0 (言語に依存しない)、または 9 (汎用英語) である場合、言語変換は必要ありません。

最終言語が 1033 (米国英語) で、既定の言語が 1031 (ドイツ語) の場合は、言語変換が必要です。 この場合、マージ ツールは、最初に複数言語モジュールで 1033 (米国英語) への埋め込み言語変換を検索できます。 それが失敗した場合、セカンダリ LANGID が一致しない場合でも、一致するプライマリ LANGID を持つ言語への変換を検索できます。 たとえば、ツールで 1033 (米国英語) への変換が見つからない場合は、9 (汎用英語) への変換を検索します。 これが失敗した場合、マージ ツールは 0 (言語に依存しない) への変換を検索します。 これらすべての検索で適切な変換が失敗した場合、モジュールは開けなくなります。

詳細については、「複数言語マージ モジュールの作成」を参照してください。