[wix-users] Multi-language installer - custom bootstrapper

Christopher Painter chrpai at iswix.com
Fri Feb 28 10:37:01 PST 2020


Here's a blog post I wrote about 9 years ago that might help:

http://blog.iswix.com/2011/10/beam-me-up-using-json-to-serialize.html
[http://2.bp.blogspot.com/-vxlAG7U_BmE/UG4Y-bCculI/AAAAAAAAAVo/hqwfrePolnc/s80/chrpai.jpg1zB]<http://blog.iswix.com/2011/10/beam-me-up-using-json-to-serialize.html>
ISWIX: Beam Me Up: Using JSON to serialize CustomActionData<http://blog.iswix.com/2011/10/beam-me-up-using-json-to-serialize.html>
We grab the value of the Groups KeyValuePair from the CustomActionData property and then deserialize it back into a List of Group. Then we iterate through the list and call the API needed to create the group(s).
blog.iswix.com



________________________________
From: wix-users <wix-users-bounces at lists.wixtoolset.org> on behalf of Bevan Weiss via wix-users <wix-users at lists.wixtoolset.org>
Sent: Friday, February 28, 2020 3:57 AM
To: 'WiX Toolset Users Mailing List' <wix-users at lists.wixtoolset.org>
Cc: Bevan Weiss <bevan.weiss at gmail.com>
Subject: Re: [wix-users] Multi-language installer - custom bootstrapper

If you're not familiar with MSI custom tables, then you have quite a bit of reading a head of you.
Creating your custom table doesn't make the magic all happen though, you'll need to write your own glue to get it all held together.


Bevan

-----Original Message-----
From: wix-users <wix-users-bounces at lists.wixtoolset.org> On Behalf Of viharika reddy via wix-users
Sent: 27 February 2020 23:59
To: WiX Toolset Users Mailing List <wix-users at lists.wixtoolset.org>
Cc: viharika reddy <viharikareddygopu at gmail.com>
Subject: Re: [wix-users] Multi-language installer - custom bootstrapper

Hi Bevan,

As you mentioned, I want to launch the MSI based on user language selection. So, I think, I am following the right approach based on your information.

May I know how can I include custom strings in the MSI? I can add the English custom strings directly in the wxs file but don't know how/where to add equivalent Japanese strings.


Regards,
Satya

On Thu, Feb 27, 2020 at 5:46 PM viharika reddy <viharikareddygopu at gmail.com>
wrote:

> Hi Bevan,
>
> I think, that is what I am doing currently. Please see my initial mail
> in this thread. However, I am copying the same here.
>
>
> I would like to know whether I am following a right approach or not to
> create a multi-lang installer(English and Japanese). I am following
> below approach.
>
> *Package creation:*
>
>
>    1. Default language is set to English in my product.wxs file.
>       2. Creating the msi package
>       3. Creating Japanese localized msi package using "-dcodepage=932"
>       and "-cultures:ja-JP" options.
>       4. Generating a transform file (1041.mst) using torch by passing
>       the above two msi packages(English and Japanese)
>       5. Creating a simple bootstrapper application with language
>       selection dialog. Now my package contains
>          1. msi package
>          2. 1041.mst file (japanese) and
>          3.  setup.exe (bootstrapper)
>
> *Note*: I am not including Japanese msi in my package
>
> *Installation:*
>
>
>    1. setup.exe displays a lang-selection dialog upon its launching.
>       2. If user selects "English" then msi will be launched as "msiexex
>       /i product.msi"
>       3. If user selects "Japanese" then msi will launched as "msiexe /i
>       product.msi 1041.mst"
>
>
> Could please confirm that I am following a right process here to
> create a multi-language installer? Please let me know if there is any
> better approach or any drawbacks in my current process.
>
> - Viharika
>
> On Thu, Feb 27, 2020 at 5:31 PM Bevan Weiss via wix-users <
> wix-users at lists.wixtoolset.org> wrote:
>
>> Why aren't you using the MST transforms for the multilingual?
>> Yes you need to generate the individual MSIs, but they get
>> consolidated into a single MSI with transform files (which you could
>> embed into the MSI also).
>>
>> I don't believe it would support dynamic (like during the installer
>> execution) switching of the language.
>> But that seems like a very unusual use-case anyway.
>>
>> I would expect that you'd just want to ship a single MSI (or setup
>> package) and have it pick the appropriate language of installer to
>> launch based on the Windows locale.
>>
>> If you want to have it based on something else that the user chooses,
>> then you just need your bootstrapper to intercept the UI first,
>> request the language information from the user and then launch with
>> the appropriate transform.  You wouldn't need to ship multiple MSIs,
>> just the one base
>> (English?) MSI, and then the various transforms.
>>
>>
>> http://www.geektieguy.com/2010/03/13/create-a-multi-lingual-multi-lan
>> guage-msi-using-wix-and-custom-build-scripts/
>>
>> https://www.hass.de/content/how-create-msi-packages-multilingual-user
>> -interface-mui
>> https://www.firegiant.com/wix/tutorial/transforms/morphing-installers
>> /
>>
>>
>>
>> Regards,
>> Bevan
>>
>> -----Original Message-----
>> From: wix-users <wix-users-bounces at lists.wixtoolset.org> On Behalf Of
>> viharika reddy via wix-users
>> Sent: 27 February 2020 10:32
>> To: Rick Papo <rpapo at comcast.net>
>> Cc: viharika reddy <viharikareddygopu at gmail.com>; WiX Toolset Users
>> Mailing List <wix-users at lists.wixtoolset.org>
>> Subject: Re: [wix-users] Multi-language installer - custom
>> bootstrapper
>>
>> >>>> But what I believe Viharika wants is the ability to change the
>> >>>> locale
>> on the fly.
>> Exactly. I wants this ability.
>>
>> >>>> how would expect ARP to remember this selection for updates /
>> uninstalls?
>> My bootstrapper launching the MSI with mst so ARP remembers the language.
>> Please see my first mail to know how I am creating the mst for
>> Japanese language.
>>
>> On Thu, 27 Feb, 2020, 4:38 AM Rick Papo, <rpapo at comcast.net> wrote:
>>
>> > But what I believe Viharika wants is the ability to change the
>> > locale on the fly.  I personally find it a huge waste that when I
>> > created three locales for my MSI (English, Japanese and Chinese),
>> > the result was three separate MSIs.  So I have the choice of
>> > embedding all three MSIs into the BootStrap Application, or
>> > shipping three different
>> bootstrappers.
>> >
>> > That is rather less than ideal, especially since the localizations
>> > are only a very, very small part of the MSIs.  Why can't all three
>> > languages be supported by a single MSI, or a single BA?
>> >
>> > -----Original Message-----
>> > From: wix-users [mailto:wix-users-bounces at lists.wixtoolset.org] On
>> > Behalf Of Hoover, Jacob via wix-users
>> > Sent: Wednesday, February 26, 2020 6:04 PM
>> > To: viharika reddy <viharikareddygopu at gmail.com>
>> > Cc: Hoover, Jacob <Jacob.Hoover at greenheck.com>; WiX Toolset Users
>> > Mailing List <wix-users at lists.wixtoolset.org>
>> > Subject: Re: [wix-users] Multi-language installer - custom
>> > bootstrapper
>> >
>> > WixStdBA already has localized strings for its install dialogs.
>> > And the UI is localizable. If you roll your own and it’s just a “launcher”
>> > for your MSI, how would expect ARP to remember this selection for
>> > updates / uninstalls?
>> >
>> >
>> > From: viharika reddy [mailto:viharikareddygopu at gmail.com]
>> > Sent: Wednesday, February 26, 2020 3:39 PM
>> > To: Hoover, Jacob <Jacob.Hoover at greenheck.com>
>> > Cc: WiX Toolset Users Mailing List <wix-users at lists.wixtoolset.org>
>> > Subject: Re: [wix-users] Multi-language installer - custom
>> > bootstrapper
>> >
>> > Hi Jacob,
>> >
>> > >>>> If you're already creating a bundle, why are you worrying
>> > >>>> about the
>> > MSI?
>> > I am not creating the bundle here. I am creating a simple
>> > bootstrapper application (my own) which launches the MSI based on
>> > the language selection. Is Wix bundle has the capability to display
>> > language selection and launch the MSI accordingly?
>> >
>> > >>>> Are these installer localizations or localizations on the
>> > >>>> installed
>> > application?
>> > These are installer localizations. During installation, if I select
>> > Japanese language in Windows English locale OS, the MSI dialog text
>> > should be in Japanese. The MSI dialog text should be based on the
>> > language selection by the user and not based on the OS locale.
>> >
>> > Please let me if you need more information. And correct me if I am
>> wrong.
>> >
>> > -Viharika
>> > On Wed, 26 Feb, 2020, 11:40 PM Hoover, Jacob,
>> > <Jacob.Hoover at greenheck.com <mailto:Jacob.Hoover at greenheck.com>> wrote:
>> > If you're already creating a bundle, why are you worrying about the MSI?
>> > Are these installer localizations or localizations on the installed
>> > application?
>> >
>> > -----Original Message-----
>> > From: wix-users [mailto:wix-users-bounces at lists.wixtoolset.org<mailto:
>> > wix-users-bounces at lists.wixtoolset.org>] On Behalf Of viharika
>> > reddy via wix-users
>> > Sent: Wednesday, February 26, 2020 9:24 AM
>> > To: WiX Toolset Users Mailing List <wix-users at lists.wixtoolset.org
>> <mailto:
>> > wix-users at lists.wixtoolset.org>>
>> > Cc: viharika reddy <viharikareddygopu at gmail.com<mailto:
>> > viharikareddygopu at gmail.com>>
>> > Subject: [wix-users] Multi-language installer - custom bootstrapper
>> >
>> > Hi,
>> >
>> > I would like to know whether I am following a right approach or not
>> > to create a multi-lang installer(English and Japanese). I am
>> > following below approach.
>> >
>> > *Package creation:*
>> >
>> >    1. Default language is set to English in my product.wxs file.
>> >    2. Creating the msi package
>> >    3. Creating Japanese localized msi package using "-dcodepage=932" and
>> >    "-cultures:ja-JP" options.
>> >    4. Generating a transform file (1041.mst) using torch by passing the
>> >    above two msi packages(English and Japanese)
>> >    5. Creating a simple bootstrapper application with language selection
>> >    dialog. Now my package contains
>> >       1. msi package
>> >       2. 1041.mst file (japanese) and
>> >       3.  setup.exe (bootstrapper)
>> >
>> > *Note*: I am not including Japanese msi in my package
>> >
>> > *Installation:*
>> >
>> >    1. setup.exe displays a lang-selection dialog upon its launching.
>> >    2. If user selects "English" then msi will be launched as "msiexex /i
>> >    product.msi"
>> >    3. If user selects "Japanese" then msi will launched as "msiexe /i
>> >    product.msi 1041.mst"
>> >
>> >
>> > Could please confirm that I am following a right process here to
>> > create a multi-language installer? Please let me know if there is
>> > any better approach or any drawbacks in my current process.
>> >
>> > -Viharika
>> >
>> > ___________________________________________________________________
>> > _ WiX Toolset Users Mailing List provided by FireGiant
>> > http://www.firegiant.com/
>> > NOTE: This email was received from an external source. Please use
>> > caution when opening links or attachments in the message.
>> > NOTE: This email was received from an external source. Please use
>> > caution when opening links or attachments in the message.
>> >
>> > ___________________________________________________________________
>> > _ WiX Toolset Users Mailing List provided by FireGiant
>> > http://www.firegiant.com/
>> >
>> >
>>
>> ____________________________________________________________________
>> WiX Toolset Users Mailing List provided by FireGiant
>> http://www.firegiant.com/
>>
>>
>> ____________________________________________________________________
>> WiX Toolset Users Mailing List provided by FireGiant
>> http://www.firegiant.com/
>
>

____________________________________________________________________
WiX Toolset Users Mailing List provided by FireGiant http://www.firegiant.com/


____________________________________________________________________
WiX Toolset Users Mailing List provided by FireGiant http://www.firegiant.com/



More information about the wix-users mailing list