多個語言合併模組

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

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

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

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

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

如果最終語言為 1033 (美式英文) ,而且預設語言是 1031 (德文) ,則需要語言轉換。 在此情況下,合併工具可能會先搜尋多個語言模組,以將 embedded 語言轉換成 1033 (美式英文) 。 如果失敗,則可能會使用相符的主要 LANGID 來搜尋某個語言的轉換,即使次要 LANGID 不符。 例如,如果工具找不到 1033 (美式英文) 的轉換,它會搜尋轉換成 9 (的一般英文) 。 如果失敗,合併工具會將轉換搜尋至 0 (中性語言的) 。 如果這些搜尋適合的轉換失敗,則模組無法開啟。

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