Многоязычные пакеты MSI без стартера Setup.exe

Теория: Со встраиваемыми языками в трансформациях Вы можете создавать многоязычные пакеты Windows Installer, которые автоматически запустятся с тем языком, который совпадает с языком операционной системы, и без потребности в стартере setup.exe. Это недокументированная функция в Windows Installer (работает в MSI версии 2 и MSI версии 3). Пока этот функционал не задокументирован, так как он не был протестирован Microsoft в значительной степени, распространяемый пакет (instmsi.exe) внутренне позволяет его использовать. Эта статья описывает, как использовать эту функцию в Вашей собственной программе инсталляции, что вполне легко.

 This article in English 
 Dieser Artikel in deutsch 

Трансформации встраиваемых языков

Использование трансформаций встраиваемых языков это недокументированная функция Windows Installer. Трансформация языка - это трансформация, которая размещена в субхранилище пакета Windows Installer, который именуется после LangId. Поток суммарной информации (Свойство: PID_TEMPLATE) включает список языков, которые поддерживаются пакетом инсталляции. Windows Installer автоматически выберет язык, который совпадет с предпочтительным языком, установленным для операционной системы.

Как это делается

Шаги № 1 и 2 являются обычными, и многие инструменты создания инсталляции выполнят это для Вас автоматически.

  1. Создайте Ваш пакет MSI с английским языком. Установите для свойства ProductLanguage значение "1033".
  2. Создайте трансформацию для немецкого языка пользовательского интерфейса. Вы должны установить для свойства ProductLanguage значение "1031".
  3. Встройте трансформацию языка в файл инсталляции .msi. Это можно выполнить используя скрипт wisubstg.vbs, который включен в набор инструментариев для разработки Windows Installer SDK. Используйте следующие команды для запуска из командной строки:
    wisubstg.vbs <путь к .msi> <путь к трансформации> <имя субхранилища>
  4. Используйте идентификатор языка Language ID (1031 для немецкого языка в этом примере) в качестве имени субхранилища. Обновите Поток Суммарной Информации перечисляя все поддерживаемые языки для этого пакета. Если Ваше средство сборки добавляет код 0 в Поток Суммарной Информации, то просто удалите его.
    Правильно: "1031,1033"
    Неправильно: "0,1031,1033"

Тестирование

Для того, чтобы протестировать Ваш пакет, запустите приложение "Языки и региональные параметры" в Панели Управления. На вкладке "Региональные настройки" переключите язык на немецкий (как показано на экране ниже). Нажмите кнопку Применить. Дважды нажмите левой кнопкой мыши на Вашем .MSI файле. Ваша инсталляция теперь будет запущена с немецким пользовательским интерфейсом. Верните выбор языка к английскому языку. Теперь Ваша инсталляция будет запускаться в английском языке.

Об авторах

Написано Андреасом Керлом
Отредактировано Стефаном Крюгером

Андреас Керл является консультантом по разработке приложений для отделения Microsoft в Германии. Он написал книгу издательства MS Press "Внутри Windows Installer" (которая доступна только на немецком языке) и в данный момент работает над его новой книгой по Windows Installer 3.1.

Стефан Крюгер работает независимым консультантом по программам установки и развивает Интернет сайт  InstallSite.org, место, где разработчики программ установки могут обмениваться ресурсами и информацией с коллегами. Стефан был признан компанией Microsoft как MVP (Наиболее Ценный Профессионал) по тематике Windows Installer.

Перевод на русский язык

Антон Спицын, MCP (Сертифицированный специалист Microsoft), участник форума InstallSite.org

 

English News Discussions Windows Installer Related Tools More Help InstallScript About InstallSite Shop Site Search
deutsch Neuigkeiten Diskussionsgruppen Windows Installer MSI FAQ Artikel     Shop Suche

Copyright © by InstallSite Stefan Krueger. All rights reserved. Legal information.
Impressum/Imprint Datenschutzerklärung/Privacy Policy
By using this site you agree to the license agreement. Webmaster contact.