Localizing a Suite Installation

Language localization is the process by which software is made available in multiple languages. There is more to localization than merely translating the text your customer may see. But in this post I’m only going to talk about gathering the text, integrating its translations, and allowing your customer to select which translation to see. If you’ve already been using InstallShield to produce a multilingual installation, the first few steps for localization will seem very familiar to you.

Whenever you specify a visible piece of text, which we call a string, InstallShield assigns a name to that string and creates a string table entry. The text in the IDE that is associated with a string table entry is easily identified by the presence of this name in curly braces. If the text has been provided for you, it may look like {IDS_INSTALL_WELCOME_CAPTION} Welcome to the InstallShield Wizard…; if it’s text you need to provide, like the name for a feature, it may look like {ID_STRING1} My Feature instead.

I suggest trying to give identifiers a more meaningful name so that they make sense when you read through your string table. You can do this by clicking the […] button to the right. The window that comes up is a simplified version of the String Editor view. Put a new name in the Identifier column, and click OK.

Once you’ve finalized all the text you will use in your installation, you can export the strings to a file and send it out for translation. If possible, have your translators send you translated text in a Unicode format. Once you receive the translated strings, you can turn on the language (in the General Information view) and import the strings back into your project. Add these languages to a release and optionally turn on the language selection wizard page, and test your installation. See the help topics “Settings for Languages”, “Translating String Entries” and “Exporting and Importing String Entries” for more detail. At this point your Suite installation is localized, but you may not be done.

Localizing your Images, EULA, and Other Resources

The images that are used on the wizard pages are stored in the Support Files view. When your Suite is running under a language, it finds resources by looking in that language’s node first, and then looking in the Language Independent node. So all you need to do here is add files of the same name to each language that needs a localized alternative. Note that translating a EULA can require special arrangements as many translators are not qualified to translate legal documents.

Telling Your Packages

While you should not need to show any UI from your Suite’s packages, they may install different files for each language they offer. If you followed similar steps in your Basic MSI or InstallScript projects that you are including as your Suite’s packages, telling them which language version of the files to install is very straightforward. For both kinds of package you must pass a command-line parameter to the package. The Suite sets a property of the name ISSelectedLanguage to a string containing the decimal LCID of the chosen language. This is exactly what Basic MSI and InstallScript projects need for their command lines. Append one of the following to both your normal and silent command lines of the Install operation.

  • Basic MSI project with external transform files– specify the transform:
    TRANSFORMS=”[ISPREREQDIR][ISSelectedLanguage].mst”
  • InstallScript or Basic MSI through setup.exe as EXE package–pass the /l (as in language) parameter:
    /l[ISSelectedLanguage]

If your packages do not support the same set of languages as your Suite, you may need to filter values or ask your customer at run-time what language they want for some of your packages. However if you are in control of both your packages and the Suite, you can keep things easy by ensuring they all share the same list of supported languages.

If you would like to use InstallShield’s multilingual installation support, download a 21 day free trial of InstallShield 2012 Premier Edition.

Tags: , , ,

Leave a Reply

Your email address will not be published. Required fields are marked *