多種語言合併模組

多種語言模組可以傳遞具有數種不同語言的元件作為單一複合檔案。 多種語言合併模組的設計與功能類似單一語言模組。 多個語言合併模組在 範本摘要 屬性中列出多個語言。 多種語言合併模組的資料庫包含多種語言的所有設定資訊。 多種語言合併模組內的 MergeModule.CABinet 封包包含所有支援語言的所有檔案。

將多種語言 .msm 檔案套用至.msi檔案時,您必須在合併之後指出安裝套件的最終語言。 如果是單一語言合併模組,合併模組的 [檔案] 資料表 會列出 MergeModule.CABinet 封包中的每個檔案。 在多重語言合併模組的情況下,MergeModule.CABinet 包含模組所支援之每個語言的所有檔案,但只有最終語言的檔案子集會進入模組的 File 資料表。 合併工具必須確保模組提供要求之最終語言所需的資訊和檔案子集。

每個合併模組都有 ModuleSignature 資料表之 Language 資料行中指定的預設語言。 合併模組的預設語言也會顯示為 範本摘要 屬性中的第一個或唯一語言。 根據所要求的最終語言和模組的預設語言,合併工具可以將語言轉換套用至多種語言合併模組,以便以要求的語言開啟,或要求語言的近似值。 語言轉換會內嵌在合併模組內。 合併工具必須遵循下列一般規則來套用語言轉換:

  • 如果預設和最終語言相同,則可以合併模組,而不使用語言轉換。
  • 如果預設語言為 0 (語言中性模組) ,則可以合併模組而不使用語言轉換。
  • 如果最終語言不是預設語言,合併工具必須套用內嵌在模組中的其中一個語言轉換,將模組變更為最終語言,或是最終語言的近似值。

例如,如果最終語言是 1033 (US English) ,模組的預設語言是 1033 (US English) 、0 (語言中性) ,或 9 (一般英文) ,則不需要語言轉換。

如果最終語言是 1033 (美國英文) ,而預設語言為 1031 (德文) ,則需要語言轉換。 在此情況下,合併工具可能會先搜尋多種語言模組,以取得內嵌語言轉換至 1033 (美國英文) 。 如果失敗,則即使次要 LANGID 不相符,也可能搜尋具有相符主要 LANGID 之語言的轉換。 例如,如果工具找不到 1033 (美國英文) 的轉換,則會搜尋轉換為 9 (一般英文) 。 如果這失敗,合併工具會搜尋轉換為 0 (語言中性) 。 如果所有這些搜尋適當的轉換失敗,模組將無法開啟。

如需詳細資訊,請參閱 撰寫多種語言合併模組