Authoring multi-language MSI packages
By default, Windows Installer packages are single-language only – no direct support for multi-language packages is currently provided. Creating a multi-lanuage installation package is thus a little more compex – the following provides a summary of the steps required:
- Create an english package
- Compile:
candle -dLANG=1033 foo.wxs
- Link:
light -out foo.msi -loc strings-en.wxl foo.wixobj
- Create the german (or whatever language) package
- Compile:
candle -dLANG=1031 foo.wxs
- Link:
light -out foo-de.msi -loc strings-de.wxl foo.wixobj
- Create a transform describing the differences between german and englich package:
msitran -g foo.msi foo-de.msi de.mst
- Embed the transform in the english package:
msidb -d foo.msi -r de.mst
The boostrapper has to decide which language the installer package should use. To use english, call msiexec without any special parameters. To use german, pass the parameter TRANSFORMS=:de.mst to msiexec, which directs it to apply the embedded transform named de.mst before running the package.
To avoid creating a bootstrapper, you might want to try this. See also: WiX tutorial, Lesson 8.
Any opinions expressed on this blog are Johannes' own. Refer to the respective vendor’s product documentation for authoritative information.
« Back to home