Question

I'm new to WIX and i'm using Wix 3.8 VS 2012. I managed to Generate .msi to .exe using this amazing tool.

From this tutorial : http://max.zamorsky.name/node/78, I managed to change the installer to French. I would like to make a multilingual installer which the installer could detect the system language & proceed to install.

I tried to understand this link:http://windows-installer-xml-wix-toolset.687559.n2.nabble.com/Localized-bundle-Picking-up-the-right-files-td7265208.html but i couldn't understand.

Please guide me that how can i make this type of installer? Need your help & thank you.

Bundle.WXS

<?xml version="1.0" encoding="UTF-8"?>
<?define SourceDirImages = "C:\Users\krangaraj\Documents\Visual Studio 2012\Projects\PrintUtility\SetupProjectInstaller" ?>
<?define SourceDoc = "C:\Users\krangaraj\Documents\Visual Studio 2012\Projects\PrintUtility\PrintUtilityExe" ?>

<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="1036\thm.wxl" SourceFile="1036\thm.wxl"/>

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

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

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


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

  </Bundle>
</Wix>
Was it helpful?

Solution

Assuming that you don't plan to use a bootstrapper that chooses the language and then starts the MSI with the appropriate language transform, you can use the method described on the following site: http://www.installsite.org/pages/en/msi/articles/embeddedlang/

Please note that the method is unsupported by Microsoft, but I had no negative experience with it. Also note that not the UI language of Windows is used to detect the language, but the Standards and format options of Windows.

It basically consists of the following steps:

  • Create your base MSI file with the base / fallback language, most of the times it will be English.
  • Create your language transform files, one for each language. If the UI will not change and you change only UI items, you can reuse these transform files for further builds.
  • Add the language transforms as streams, using a VBScript-script from the Windows SDK.
  • Update the language entry of the summary information stream to reflect the included languages.

During installation, the initial dialog will pop-up which checks for the configured language, then the UI is shown in the correct language.

As said: this method worked great for me for an installer and > 20 languages.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top