Video Screencast Help
Search Video Help Close Back
to help
New in the Rewards Catalog: Vouchers for "Symantec Technical Specialist" and "Symantec Certified Specialist" exams.

MSI with Multi-Language Without setup.exe Launcher

Updated: 29 Jan 2008 | 5 comments
Andreas Kerl's picture
0 0 Votes
Login to vote

With embedded language transforms you can build a multi-language Windows Installer package that automatically runs in a language that matches the operating system language, without need for a setup.exe launcher. This is an undocumented feature in Windows Installer (works with MSI 2 and MSI 3). While this functionality is not documented because it has not been tested extensively by Microsoft, the MSI redistributable package (instmsi.exe) internally makes use of it. This article describes how to make use of this feature in your own setup, which is quite easy.

Editor's Note: English, Russian, and German versions of this article can be found at http://www.installsite.org

Embedded Language Transfoms

The use of embedded language transforms is an undocumented feature of Windows Installer. A language transform is a transform that is located in a substorage of a Windows Installer package that is named after the LangId. The Summary Information Stream (Property: PID_TEMPLATE) includes a list of languages that are supported by the package. Windows Installer automatically selects the language that matches the language preference that is set for the operating system.

How to do it

Steps 1 and 2 are as usual and many setup authoring tools will do this for you automatically.

  1. Build your msi package for language English. Set the ProductLanguage property to "1033".
  2. Build a language transform for German UI. This transform must set the ProductLanguage property to "1031".

Embed the langauge transform in the .msi file. This can be done using the wisubstg.vbs script that's included in the Windows Installer SDK. Use the following command line:
wisubstg.vbs
Use the Language Id (1031 for German in this sample) as name of the sub-storage.
Update the Summary Information Stream to list all supported languages of this package. If your MSI authoring tool added a language code of 0 to the summary information stream remove it.
Correct: "1031,1033"
Wrong: "0,1031,1033"

Testing

To test your package, go to the "Regional and Language Options" applet in Control Panel. On the "Regional Options" tab switch the language to German (see screenshot below). Click Apply. Double click your .msi file. Your setup will now launch with German UI. Restore the language selection to English. Now your setup will run in English.

Comments

R-Vijay's picture
26
Jan
2008
0 Votes 0
Login to vote

MUI

I reckon, the MUI feature is a big ticket feature of Windows Installer 4.0. I didnt know that MUI works with installer 2 and 3.

Its a nice piece of information.

Cheers'
Vijay

Microsoft MVP [Setup-Deploy]
Weblog: www.msigeek.com

riva11's picture
28
Jan
2008
1 Vote +1
Login to vote

Interesting article

Interesting article Tilakgovind, really helpful.

stephen's picture
25
Mar
2008
0 Votes 0
Login to vote

Nice

Interesting and nice article.

kristjan84's picture
16
Oct
2008
0 Votes 0
Login to vote

Not working

I have tried this a number of times, and cant get it to work, any suggestions. Everytime I run the installer, it is in english, even if I change the language in regional settings.

maithili_manurkar@symantec.com's picture
20
May
2009
0 Votes 0
Login to vote

Need to change the language wrt change in UI language

Is there any way we can do a similiar thing, but the language should change on change in UI language and not user locale.