多種語言合併模組
多種語言模組可以使用數種不同的語言作為單一複合檔案來提供元件。 多種語言合併模組的設計和功能類似於單一語言模組。 多重語言合併模組在 範本摘要 屬性中列出多個語言。 多種語言合併模組的資料庫包含多種語言的所有設定資訊。 多重語言合併模組內的 MergeModule.CABinet 封包包含所有支援語言的所有檔案。
將多種語言 .msm 檔案套用至 .msi 檔案時,您必須在合併之後指出安裝套件的最終語言。 在單一語言合併模組的情況下,合併模組的 檔案數據表 列出 MergeModule.CABinet 封包中的每個檔案。 在多種語言合併模組的情況下,MergeModule.CABinet 包含模組所支援之每個語言的所有檔案,但只有最終語言的檔案子集會進入模組的 File 數據表。 合併工具必須確保模組提供要求之最終語言所需的資訊和檔案子集。
每個合併模組在 ModuleSignature 資料表的 Language 資料行中指定了預設語言,。 合併模組的默認語言也會顯示為 樣本摘要 屬性中的第一個或唯一的語言。 根據所要求的最終語言和模組的默認語言,合併工具可以將語言轉換套用至多種語言合併模組,以便以要求的語言開啟,或要求的語言近似值。 語言轉換會內嵌在合併模組內。 合併工具必須套用語言轉換,以符合下列一般規則:
- 如果預設和最終語言相同,則可以合併模組,而不需使用語言轉換。
- 如果預設語言為 0(語言中性模組),則模組可以合併而不使用語言轉換。
- 如果最終語言不是預設語言,則合併工具必須套用模組內嵌的其中一個語言轉換,以將模組變更為最終語言,或套用至最終語言的近似值。
例如,如果最終語言為 1033(美國英文),而模組的默認語言為 1033(美式英文)、0(語言中性),或 9(泛型英文),則不需要語言轉換。
如果最終語言為 1033(美國英文),且預設語言為 1031(德文),則需要語言轉換。 在此情況下,合併工具可能會先搜尋多種語言模組,以取得內嵌語言轉換至 1033(美式英文)。 如果失敗,則即使次要 LANGID 不相符,仍可能會搜尋具有相符主要 LANGID 之語言的轉換。 例如,如果工具找不到 1033 的轉換(美式英文),則會搜尋轉換成 9 的轉換(一般英文)。 如果這失敗,合併工具會搜尋轉換為 0(語言中性)。 如果所有這些搜尋適當的轉換失敗,模組就無法開啟。
如需詳細資訊,請參閱 撰寫多種語言合併模組。