Kevin ATX
Kevin ATX

Reputation: 21

Dealing with Multi-Language MSI Installscript Installshield Installer issues

I'm am a new InstallShield Developer and challenged with converting one of my company's desktop application to a multi-language installer. I mostly have it working the way we wanted it with the installer detecting the OS language and displaying the dialog boxes with the appropriate locale. It's a MSI InstallScript project and I had to switch out some of the hard-coded strings from the script with an ID_string then add that string (and it's translations) to the database with the editor - which worked like a charm.

The last issue I need to solve is how to make the application start up in the appropriate language. The application does have a feature to change the UI locale but it's in a "settings" area and the user would need to navigate there to change it after starting the app. There is no feature in the app to detect the OS and open with that locale. I would like to avoid asking the developer from having to add that. There is an XML file in the app's installed files that I can manually edit and force the app to start in that locale. I looked at using the "XML file changes" tool but was having difficulty. I also attempted to add new components for each language to lay down the new xml file during the install but I got a lot of errors concerning not being able to compress the files and some other errors.

This seems like an issue that has probably been looked at many times by others. I'd love to find out if maybe I'm missing an obvious feature/tool that is available in InstallShield for this type of problem or is anyone has suggestions that I could try.

Thank you in advance for any help!

Kevin

Upvotes: 1

Views: 447

Answers (1)

Kevin ATX
Kevin ATX

Reputation: 21

Apologies for the delay on getting back to explain how I ended up solving my problem. The main problem was that I needed to detect the language of the OS then use that to have the installer lay down the appropriate xml file which told the application which language to display upon starting.

I created additional components for each new language added. In each new component I made it install conditionally (easy setting in the component menu area to the right) by language. I put in a condition that when the ProductLanguage code matched the one for that component then it copied the xml file that had the appropriate locale node to the target machine dir. When the app started it would start in the language that matched that ProductLanguage code.

Seems to be working properly. I basically just copied the original component that placed the English XML file to the targetdir and made one for each locale added to installer and set the new components to install conditionally.

Thanks to anyone attempting to help. I think sometimes one needs to summarize a problem in the process of asking for help to actually see the big picture.

Upvotes: 1

Related Questions