Поделиться через


Несколько модулей слияния языков

Несколько языковых модулей могут доставлять компоненты с несколькими различными языками в виде одного составного файла. Проектирование и функциональные возможности нескольких модулей слияния языков похожи на модули одного языка. Модуль слияния с несколькими языками содержит несколько языков, перечисленных в свойствешаблона. База данных модуля слияния с несколькими языками содержит все сведения о настройке для нескольких языков. Кабинет MergeModule.CABinet в модуле слияния с несколькими языками содержит все файлы для всех поддерживаемых языков.

При применении нескольких языков MSM-файла к файлу .msi необходимо указать окончательный язык пакета установки после слияния. В случае модуля слияния с одним языком таблица файла модуля слияния перечисляет каждый файл, представленный в кабинете MergeModule.CABinet. В случае с модулем слияния с несколькими языками mergeModule.CABinet содержит все файлы для каждого языка, поддерживаемого модулем, но только подмножество файлов для конечного языка переходит в таблицу файлов модуля. Средство слияния должно гарантировать, что модуль предоставляет подмножество сведений и файлов, необходимых для запрошенного конечного языка.

Каждый модуль слияния имеет язык по умолчанию, указанный в столбце "Язык" таблицы moduleSignature moduleSignature. Язык по умолчанию модуля слияния также отображается как первый или только язык в свойстве template Summary. В зависимости от запрошенного конечного языка и языка по умолчанию модуля средство слияния может применять преобразования языка к модулю слияния с несколькими языками, чтобы его можно было открыть на запрошенном языке или приблизить запрошенный язык. Преобразования языка внедряются в модуль слияния. Средства слияния должны применять преобразования языка в соответствии со следующими общими правилами:

  • Если параметры по умолчанию и окончательные языки совпадают, модуль можно объединить без преобразования языка.
  • Если язык по умолчанию равен 0 (нейтральный для языка модуль), модуль можно объединить без преобразования языка.
  • Если окончательный язык не является языком по умолчанию, средство слияния должно применить одно из преобразований языка, внедренных в модуль, чтобы изменить модуль на окончательный язык или приблизить окончательный язык.

Например, преобразования языка не требуются, если окончательный язык равен 1033 (английский язык США), а язык по умолчанию модуля равен 1033 (английский), 0 (нейтральный язык) или 9 (универсальный английский).

Преобразования языка требуются, если окончательный язык равен 1033 (английский язык США), а язык по умолчанию — 1031 (немецкий). В этом случае средство слияния может сначала выполнить поиск нескольких языковых модулей для преобразования внедренного языка на 1033 (английский язык США). Если это не удается выполнить поиск преобразования на язык с соответствующим первичным LANGID, даже если вторичный LANGID не совпадает. Например, если средство не удается найти преобразование в 1033 (английский язык США), он ищет преобразование до 9 (универсальный английский). Если это не удается выполнить поиск средства слияния для преобразования до 0 (нейтрального языка). Если все эти поиски подходящего преобразования завершаются ошибкой, модуль не открывается.

Дополнительные сведения см. в создании нескольких модулей слияния языков.