WIX генерирует многоязычный установщик


Я новичок в WIX и использую Wix 3.8 VS 2012. Мне удалось сгенерировать .- да нет же .exe с помощью этого удивительного инструмента.

Из этого учебника: http://max.zamorsky.name/node/78 , мне удалось изменить установщик на French. Я хотел бы сделать многоязычный инсталлятор, который установщик мог бы определить язык системы и приступить к установке.

Я пытался понять это. link:http://windows-installer-xml-wix-toolset.687559.n2.nabble.com/Localized-bundle-Picking-up-the-right-files-td7265208.html но я не мог понять.

Пожалуйста, объясните мне, как я могу сделать этот тип установщика? Нужна ваша помощь и спасибо.

Связка.WXS

<?xml version="1.0" encoding="UTF-8"?>
<?define SourceDirImages = "C:UserskrangarajDocumentsVisual Studio 2012ProjectsPrintUtilitySetupProjectInstaller" ?>
<?define SourceDoc = "C:UserskrangarajDocumentsVisual Studio 2012ProjectsPrintUtilityPrintUtilityExe" ?>

<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"
         xmlns:bal="http://schemas.microsoft.com/wix/BalExtension">
    <Bundle Name="PrintUtility" Version="1.5" Manufacturer="DNP PIE SAS" IconSourceFile="PartyPrintInstaller.ico"
          UpgradeCode="7ba74925-c154-4939-9c2e-a531eac0cd8a" >
    <BootstrapperApplicationRef Id="WixStandardBootstrapperApplication.RtfLicense" >
      <bal:WixStandardBootstrapperApplication SuppressOptionsUI="yes" SuppressRepair="yes"
        LicenseFile="$(var.SourceDoc)sample.rtf" ThemeFile="HyperlinkTheme.xml"
        LocalizationFile="HyperlinkTheme.wxl"
        ShowVersion="yes"
        LogoFile="$(var.SourceDoc)logo.jpg" LogoSideFile="$(var.SourceDoc)SideLogo.jpg"/>

      <!--For the French language -->
        <Payload Compressed="yes"  Name="1036thm.wxl" SourceFile="1036thm.wxl"/>

      <!-- I would like to add German,Greek,English,Es,It,Jp,Ru,Turkish make a common installer  

      <Payload Compressed="yes"  Name="1031thm.wxl" SourceFile="1031thm.wxl"/>
      <Payload Compressed="yes"  Name="1032thm.wxl" SourceFile="1032thm.wxl"/>
      <Payload Compressed="yes"  Name="1033thm.wxl" SourceFile="1033thm.wxl"/>
      <Payload Compressed="yes"  Name="1034thm.wxl" SourceFile="1034thm.wxl"/>
      <Payload Compressed="yes"  Name="1040thm.wxl" SourceFile="1040thm.wxl"/>
      <Payload Compressed="yes"  Name="1041thm.wxl" SourceFile="1041thm.wxl"/>

      <Payload Compressed="yes"  Name="1049thm.wxl" SourceFile="1049thm.wxl"/>
      <Payload Compressed="yes"  Name="1055thm.wxl" SourceFile="1055thm.wxl"/>-->


    </BootstrapperApplicationRef>
    <Chain>
      <!-- TODO: Define the list of chained packages. -->
      <MsiPackage  SourceFile="$(var.SourceDirImages)Product.msi"/>
    </Chain>

  </Bundle>
</Wix>
1 2

1 ответ:

Предполагая, что вы не планируете использовать загрузчик, который выбирает язык и затем запускает MSI с соответствующим преобразованием языка, вы можете использовать метод, описанный на следующем сайте: http://www.installsite.org/pages/en/msi/articles/embeddedlang/

Обратите внимание, что этот метод не поддерживается Microsoft, но у меня не было никакого негативного опыта с ним. Также обратите внимание, что для определения языка используется не язык пользовательского интерфейса Windows, а стандарты и формат варианты окон.

Он в основном состоит из следующих шагов:

  • создайте базовый MSI-файл с базовым / резервным языком, в большинстве случаев это будет английский.
  • создайте файлы преобразования языка, по одному для каждого языка. Если пользовательский интерфейс не изменится и вы измените только элементы пользовательского интерфейса, вы можете повторно использовать эти файлы преобразования для дальнейших построений.
  • добавьте языковые преобразования в виде потоков, используя VBScript-скрипт из Windows SDK.
  • обновить ввод языка сводного информационного потока для отражения включенных языков.

Во время установки появится начальное диалоговое окно, которое проверяет настроенный язык, затем пользовательский интерфейс отображается на правильном языке.

Как сказано: этот метод отлично работал для меня для установщика и > 20 языков.