Passing current language (os language, choosen language) to msi (or choosen properly localized msi)

Jul 16, 2010 at 1:26 PM


Our msi installer comes in more than one language.

Somehow, i need to determine the current language (os language or - if selecting is enabled - the selected one) in the bootstrapper and pass this information on to the msi or choose the msi file for the specific language.

( Currentyl, we have one installer for every language. If possible i would like to avoid the hassle of any transform operation and make the bootstrapper call the proper msi, as they are relativly small and we only have 2 languages. However i dont see how this is possible using dotNetInstaller, i am no pro tough. So we may have to do the transfrom operation but for this we would have to pass the proper command string. Example: 

msiexec /i SampleMulti.msi TRANSFORMS="de-de.mst"  (taken from


Bottom line, i somehow need to determine the current language, get the localization string (Example: de-de, en-en, fr-fr) and pass it on to the installer. Furthermore, a small check should be made in case there is no msi for the langauge and then a fallback culture should be chosen.
All in all, some very small scripting should be done.
Being a newbie, i am having problems implementing this and i would appreciate any help.

Thanks in advance and greetings

Jul 16, 2010 at 2:22 PM

Are you using a language selector (ie. your configurations have a language and a language id defined). If so, you have two variables, #LANGUAGE and #LANGID. The first one is the free-formed value from the configuration and the second is a number (1033, etc.). If you can rename your transforms to 1033 instead of en-us, you're all set. Otherwise we'd have to implement another variable to get the locale string in a new variable.

Selected configuration language ID. This may be blank if the configuration doesn't have a language defined.
Selected configuration language string. This may be blank if the configuration doesn't have a language defined.
Jul 16, 2010 at 2:23 PM
This discussion has been copied to a work item. Click here to go to the work item and continue the discussion.