[wix-users] Multilingual MSI installer
Barry Leslie
Barry.Leslie at TeamDrive.com
Thu Nov 22 15:16:23 PST 2018
For the benefit of anybody with a similar problem here is how I solved this.
There may be better ways to do this and I think the people at add-in-express provide tools to do all of this for you.
See: https://www.add-in-express.com/docs/wix-multi-language-setup.php <https://www.add-in-express.com/docs/wix-multi-language-setup.php>
As of November 22 2018 this seems to work.
This link explains how to set this up:
http://www.geektieguy.com/2010/03/13/create-a-multi-lingual-multi-language-msi-using-wix-and-custom-build-scripts/
But like most info on this it is out of date.
In your Visual Studio properties add all the cultures you want to build for and in the ’Tool Settings’ add the linker option ‘-sval’. The linker option deactivates MSI validation which will fail because of the ‘Languages’ you set in the WIX project. Your wix project should look something like this:
<Product Language="!(loc.ID)"> <!-- Other attributes skipped -->
<Package Languages="1029,1031,1033,1049,3072" /> <!-- Other attributes skipped -->
<!-- Other tags skipped -->
</Product>
NOTE: loc.ID is set in each of your .wxl files for that language.
Have Visual Studio build the installers for all the supported cultures.
Use this script which I will call mergeInstaller.bat:
========
call "%VSINSTALLDIR%\Common7\Tools\VsDevCmd.bat"
set MsiName=%1
set BasePath=%2
set TransPath=%3
set langcode=%4
set DestPath=%5
if not exist %DestPath%\%MsiName% copy %BasePath%\%MsiName% %DestPath%
MsiTran.exe -g %BasePath%\%MsiName% %TransPath%\%MsiName% %langcode%
MsiDB.exe -d %DestPath%\%MsiName% -r %langcode%
rm %langcode%
=======
The script is then called after the project has been built for each language you support:
mergeInstaller.bat MyInstaller.msi bin\en-US bin\de-DE 1031 bin
mergeInstaller.bat.bat MyInstaller.msi.msi bin\en-US bin\de-DE 1031 bin
Note that this script doesn’t use the VSB scripts mentioned in the link. I do not think they are supplied anymore probably because there are now msi developer tools to do the job.
The msi installer in ‘bin’ should now be able to switch to the display language of the machine on which it is being installed.
Barry
…
> On Nov 20, 2018, at 2:45 PM, Barry Leslie via wix-users <wix-users at lists.wixtoolset.org> wrote:
>
> Hi,
>
> I have been trying to build a Multilingual MSI installer with out any luck.
> I have been following the instructions here:
>
> https://www.packtpub.com/mapt/book/application_development/9781849513722/12/ch12lvl1sec79/creating-a-multi-language-msi <https://www.packtpub.com/mapt/book/application_development/9781849513722/12/ch12lvl1sec79/creating-a-multi-language-msi>
>
> as well as here:
>
> http://www.installsite.org/pages/en/msi/articles/embeddedlang/ <http://www.installsite.org/pages/en/msi/articles/embeddedlang/>
>
> and here:
>
> https://www.hass.de/content/how-create-msi-packages-multilingual-user-interface-mui <https://www.hass.de/content/how-create-msi-packages-multilingual-user-interface-mui>
>
> I was able to use msiTrans and msidb to build an msi package that could install in German or English when started from the command line with:
> msiexec myInstaller.msi TRANSFORM=“:de-DE.msi"
>
> But what I want is a single msi package that when opened will start the installation process in the users language.
>
> Here is what I have done:
> 1) Build a German and an English version of myInstaller.msi
> 2) Copy the English myInstaller.msi into the folder with the Gernam myInstaller.msi renaming it myInstaller_en.msi
> 3) torch -t language myInstaller.msi myInstaller_en.msi -out en.mst
> 4) cscript WiSubStg.vbs myInstaller.msi en.mst 1033
> 5) cscript WiLangId.vbs myInstaller.msi Package 1033,1031
>
> If I then click myInstaller.msi to install it I would expect it to start in English because it is running on an English system but it starts in German.
>
> One significant note, I am using wix tool set v4.0. I inherited this project and the original developer told me he used v4.0 rather than v3.11 because it had a bug fix the other did not, I think the bug had something to do with VM machines. I do not know if this is actually true or not. The torch that came with v4.0 didn’t work where the v3.11 torch did so that may also be the problem.
>
> All the references to this build process seem to be fairly old so I do not know if this is the current state of the art or if there is a better way to do this.
>
>
> Any help at all on this would be appreciated.
>
> At this point I am considering switching to the current V3 wix tool set and hope that the VM bug was not real or there is a better work around for it.
>
> Barry
>
> ____________________________________________________________________
> WiX Toolset Users Mailing List provided by FireGiant http://www.firegiant.com/
-------------------------------------------------------------------
Barry Leslie
Senior Software Engineer
TeamDrive Systems GmbH
Canadian Office
Tel: (001) 250 884 1820
Fax: (001) 250 595 4460
Email: Barry.Leslie at T <mailto:Barry.Leslie at PrimeBase.org>eamDrive.com
Web: www.TeamDrive.c <http://www.primebase.org/>om
TeamDrive Systems GmbH
Max-Brauer-Allee 50
22765 Hamburg • Germany
Geschaeftsfuehrung: Ulrich Zimmer, Detlef Schmuck
------------------------------------------------------------------
More information about the wix-users
mailing list