InstallAnywhere is a software tool for creating installers or software packages, for multiple operating systems. It provides many tools and resources to help you deliver localized installers. There are two editions of InstallAnywhere. Enterprise Edition has full international support to create installers in 31 different languages. Standard Edition has international support for nine languages.
We cover how to globalize the various resources in InstallAnywhere and generate a localized installer. We draw from the experience that our IBM Integrated Information Core installation team gained while they wrote and tested the installers for Integrated Information Core Version 1.5. For this article, we installed InstallAnywhere 2010 Enterprise SP1 and based our example on this version. See Resources for a link to Flexera software, where you can download the free trials of other versions.
How to generate multi-language installers
InstallAnywhere can generate localized installers when you select the locales you want to support. You specify locale settings for each build configuration by using the Build task as shown in Figure 1.
- Select Build, then select the Build Configurations tab.
- Select the build configuration that you want to edit from the Select Build Configuration list.
- Select the Locales sub tab.
- Use the check boxes to select languages.
- Save the project.
Figure 1. Specify locale settings
(View a larger version of Figure 1.)
How to localize the splash screen
The ability to localize the splash screen is available only in InstallAnywhere Enterprise Edition. As seen in Figure 2, the startup splash screen shows a splash screen that includes image, title, instructions, and confirmation.
Figure 2. The startup splash screen
(View a larger version of Figure 2.)
You can use variables for these elements, but be aware that the only
variables that are automatically resolved in the splash screen are
$INSTALLER_TITLE$ and $PRODUCT_NAME$. The value of any other variable that
is used here must either be passed to the installer at the command line or
be included in the installer.properties file for the installer.
Localize the splash screen title
- Find the locales directory of your project. This directory is in the
same location as your project file and is named to match your project
name,
<project_name>locales_<build_configuration_name>,
for example,My_Productlocales_Default_Configuration. - Open each non-English locale file, for example,
custom_zh_CN, in a text editor, and find thesplashScreenGUITitleelement. This element typically uses anInstaller.#.splashScreenGUITitlekey, where # represents the reference ID for the element. - Provide the translated title text as the value for the
Installer.#.splashScreenGUITitlekey. - Save your changes.
Localize the splash screen image
- In the Install task, add all localized splash screen image files to
the
DO NOT INSTALLfolder to ensure that the image resources for the localized splash screens are available to your installer and that they are not installed to the target system. - Find the locales directory of your project. This directory is in the
same location as your project file and named to match your project
name,
<project_name>locales_<build_configuration_name>,
for example,My_Productlocales_Default_Configuration. - Open each non-English locale file in a text editor and find the
splashScreenGUIImageNameandsplashScreenImagePathelements. These elements are displayed in the locale files asInstaller.#.splashScreenGUIImageNameandInstaller.#.splashScreenImagePath, where # represents the reference ID for the element. - Enter the correct locale-specific file name and path (if necessary)
values for the
Installer.#.splashScreenGUIImageNameandInstaller.#.splashScreenImagePathkeys. - Save your changes.
Localize the splash screen instructions
- Find the locales directory of your project.
- Open each non-English locale file in a text editor and find the
splashScreenGUIInstructionselement. This element typically uses anInstaller.#.splashScreenGUIInstructionskey, where # represents the reference ID for the element. - Provide the translated instructions text as the value for the
Installer.#.splashScreenGUIInstructionskey. - Save your changes.
Localize the splash screen confirmation
- Find the locales directory of your project.
- Open each non-English locale file in a text editor, and find the
splashScreenGUIConfirmelement. This element typically uses anInstaller.#.splashScreenGUIConfirmkey, where # represents the reference ID for the element. - Provide the translated confirmation text as the value for the
Installer.#.splashScreenGUIConfirmkey. - Save your changes.
You can also localize related console-installer elements on the
Choose Locale console by using the locale elements
splashScreenConsoleTitle and splashScreenConsolePrompt.
How to localize the license agreement
- Make sure to include every resource in the Install task. For example,
as shown in Figure 3, we include English and
Chinese languages. Installers cannot access resources that are not
specified in this task.
Figure 3. Add licenses with the installer
- Open each non-English locale file in a text editor and find the line
in the locale file that contains the text
LicenseAgrAction.#.resourceName. - Specify the file name of the file that contains the localized license agreement, for example, LA_zh.html.
- Find the line that contains the text
LicenseAgrAction.#.resourcePath. - Specify the path name to the file that contains the localized license agreement (on the local file system).
How to localize Get User Input panels
You can easily globalize choices in the Get User Input panel by editing a project's locale files. Here is an example that uses English and Chinese:
We added a Get User Input - Advanced panel that asks: "Have you read the installation guide?" This panel offers the user radio buttons with Yes and No as possible choices, as shown in Figure 4.
Figure 4. Get User Input - Advanced panel
(View a larger version of Figure 4.)
- Build for all intended operating systems and locales.
- Go to the <project_name>locales_<build_configuration_name> directory.
- Since we are customizing a Chinese installer for this example, use a simple text editor to open the custom_zh_CN and custom_en files.
- In the custom_en file, search for the text you want to customize. It
will look something like (though the ID might be different):
# GetUserInput.10014ddab7d7.prompt=Have you read the installation guide? GetUserInput.10014ddab7d7.prompt=Have you read the installation guide? # GetUserInput.10014ddab7d7.title=Get User Input GetUserInput.10014ddab7d7.title=Get User Input
If you want to change the Yes or No, do a search for Yes or No in the custom_en. You will find something like:
# GUIComponentData.1001faf2b92f.label=Yes GUIComponentData.1001faf2b92f.label=Yes # GUIComponentData.10024eb0b92f.label=No GUIComponentData.10024eb0b92f.label=No
- Find the matching entries in the custom_zh_CN file.
- In the custom_zh_CN file, change the matching entries to
reflect the customizations for this locale. For
example:
#GetUserInput.10014ddab7d7.prompt=Have you read the installation guide? GetUserInput.10014ddab7d7.prompt=你是否阅读了安装指南? #GetUserInput.10014ddab7d7.title=Get User Input GetUserInput.10014ddab7d7.title=获取用户输入 # GUIComponentData.1001faf2b92f.label=Yes GUIComponentData.1001faf2b92f.label=是 #GUIComponentData.10024eb0b92f.label=No GUIComponentData.10024eb0b92f.label=否 - Rebuild your project.
How to use an external resource bundle
External resource bundles are available only in InstallAnywhere Enterprise edition. External resource bundles contain custom locale files (one per locale) you can use to provide more localized strings in your installer or replace the InstallAnywhere built-in dynamic locale files. Each custom locale properties file includes a set of key and value pairs that provide localized values for installer resources.
When you add an external resource bundle, your installers use the custom
locale properties files from that bundle to resolve the value of the keys that are referenced in the installer based on the value of
$INSTALLER_LOCALE$.
- In the Advanced Designer, open the Project > Locales task.
- Double-click the Bundle Name column of the External Resource Bundle Settings table.
- Enter a bundle name for the external resource bundle you want to use.
- Double-click the Resource Bundle Path column. The Choose a File dialog box opens.
- Locate the directory in which your custom locale properties files are stored and select one of the locale properties files.
- Click Select.
Figure 5 shows an example where the custom locale
properties files that contain the messages that are used in logs are referenced as
an external resource bundle. In this example, we put Message_en.properties, Message_zh.properties, and other properties files for other locales (if
any) in the folder $IA_PROJECT_DIR$\properties. We select any one of
the properties files as the resource bundle path.
Figure 5. External resource bundle settings
(View a larger version of Figure 5.)
Verify that the external resource bundle contains a properties file for each locale you plan to support. Installers that are built for locales without a properties file default to English values for each localized resource that references the external resource bundle.
The keys that you create in the locale properties files of your external
resource bundle can be referenced in your installers by using the syntax $L{<bundle_name>.<key>}
<bundle_name>is the name that you provide in the External Resource Bundle Settings table on the Project > Locales task. In the example above, it is LogBundle.<key>is the key for the localized value you want to show in your installer, for example, Message001.
External resource bundle keys function just like InstallAnywhere variables except that they always acquire their value from the locale files in your external resource bundle. Hence, if the installer locale is ZH (Chinese), the value of a key reference is set by that key's value in the Chinese locale properties file within your external resource bundle. Many of the most common panels have dynamic text elements that include default values. For example, the Introduction panel provides default text for the panel title and message. InstallAnywhere provides support in all supported locales for these default values. If you enter a reference to an external resource key in place of the default text, InstallAnywhere uses the locale files in your external resource bundle instead of its built-in dynamic locale files.
Build the project and run the installer.
If you run the installer in GUI mode, the locale is commonly set by the locale of the target system or the locale the user selects on the splash screen.
If you run the installer in the command line, enter <installer_name>
-i <mode> -l <language_code>[_OPTIONAL_COUNTRY_CODE] to
indicate what locale you want to use. For example, to run the installer with
the Simplified Chinese locale use Install.exe -i
console -l zh_CN.
InstallAnywhere provides many mechanisms to help your industry solution deployment support globalization easily. You now know how to globalize the various resources in InstallAnywhere and generate a localized installer that is a helpful reference when you want to develop multi-language installers with InstallAnywhere.
Learn
- developerWorks
Industries: Find more industry-specific technical resources for
developers.
- developerWorks
WebSphere: Explore more WebSphere-related technical resources for
developers.
- developerWorks on
Twitter: Join today to follow developerWorks tweets.
- developerWorks podcasts: Listen to interesting interviews and
discussions for software developers.
Get products and technologies
- Flexera Software: Find InstallAnywhere free trials, white papers,
and more.
-
Evaluation
software: Download a trial version, work with product in an
online, sandbox environment, or access it in the cloud.
Discuss
-
developerWorks profile: Create your profile today and set up a watchlist.
- developerWorks
community: Connect with other developerWorks users while exploring
the developer-driven blogs, forums, groups, and wikis.

Jing Fan is a staff software engineer on the Industry Solution Development Team. She is responsible for Integrated Information Core installer development and deployment. Jing is experienced working with the IBM Solution Assembly Toolkit and Install Anywhere.

Zhuo Zhao is a software engineer working in the IBM China Development Lab. She has many years of experience in Industry Solution development and deployment. Currently, Zhuo is working on automated deployment for IBM Integrated Information Core.





