4

We have an MSI and Bundle created in Wix. I need to localize both of these in such a way that language selection GUI will be popped-up and language can be selected by the user at run time. Would be really appreciated if anybody can help me on this.

For MSI, i am working on creating another bootstapper for bringing-up with language selection combobox and invoke the tranfomed MSI with the required transform(using command shell). I am still not sure about the feasibilty of this approach. I am facing issue in creating combo box in customized UI of bootstapper and invoking batch command to run this msi in the required language.

For Bundle - I am still working on finding a method. if anybody has any idea/samples for this.

It will be helpful if anybody can help me with this issue or provide me with an another alternative method to meet above requirement.

Thanks,

Epu
  • 615
  • 8
  • 18
Antony Quest
  • 41
  • 1
  • 4

3 Answers3

3

The recommended method (and for that matter, the method used by most MS products), is as you describe.

  1. Create an MSI localized for each language
  2. pick a base and generate MST's
  3. Package the MSTs, the MSI and the bootstrapper, which will
  4. present the language selection dialog and call MSIEXEC, passing TRANSFORM=language.mst as an argument

After the MSIEXEC process has started, all localization is finalized, so to speak. Any selection must go on outside the MSI system.

See this codeproject article for an example.

Mitch
  • 21,223
  • 6
  • 63
  • 86
  • You dont need to call MSIEXEC. Simply bundle the msi using `MsiPackage` and create a child node `` – DTdev May 09 '13 at 08:49
  • @durgesht, the question references creating a custom bootstrapper, which would have to call `MSIEXEC` directly. WiX Bundles just simplify the generation of such bootstrappers - one way or another, the `TRANSFORMS` property gets passed to the MSI system. – Mitch May 09 '13 at 22:22
0

UI selection for MSI

  1. Create an MSI localized for each language
  2. Pick a base and generate MST's
  3. Package the MSTs, the MSI into a bootstrapper.
  4. Customize the HyperlinkTheme.xml to include radio button for selecting each language.
  5. Use the Variable tag to link radio button from UI to .wxs file
  6. Include the msi property in the msi tag and hard code the path to MST's and InstallCondition attribute to differentiate each selection
  7. Use the latest version of wix for this feature support.

Bundle support only automatic base detection there is no support for UI selection

Woodgnome
  • 2,281
  • 5
  • 28
  • 52
Antony Quest
  • 41
  • 1
  • 4
  • Where did you add the radio button? The `` element of a theme doesn't allow a child of type `RadioButton`. Can you show (an excerpt of) the theme that you've created? – harper Sep 25 '16 at 10:09
0

I guess this may help you: creating language selection dialog using WiX.

there is a limitation that custom UI for language selection is created using C# based custom bootstrapper. This may lead to the requirement of .Net framework on host machine.

Community
  • 1
  • 1
DTdev
  • 538
  • 1
  • 18
  • 32