Skip to main content

By clicking Submit, you agree to the developerWorks terms of use.

The first time you sign into developerWorks, a profile is created for you. Select information in your profile (name, country/region, and company) is displayed to the public and will accompany any content you post. You may update your IBM account at any time.

All information submitted is secure.

  • Close [x]

The first time you sign in to developerWorks, a profile is created for you, so you need to choose a display name. Your display name accompanies the content you post on developerworks.

Please choose a display name between 3-31 characters. Your display name must be unique in the developerWorks community and should not be your email address for privacy reasons.

By clicking Submit, you agree to the developerWorks terms of use.

All information submitted is secure.

  • Close [x]

Improve your industry solution installation, Part 2: Globalize your InstallAnywhere installer

Jing Fan, Staff Software Engineer, IBM
Photograph of Jing Fan
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.
Zhao Zhuo, Software Engineer, IBM
Photograph of Zhao Zhuo
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.
Raymond Mahon, Infrastructure Software Engineer, IBM
Photograph of Raymond Mahon
Raymond Mahon is a member of the industry solutions team in the IBM Dublin Software Lab. He has many years of experience in designing automated solutions and is currently focusing on industry solutions installers development.
Brian Lavin, Senior Software Engineer, IBM
Photograph of Brian Lavin
Brian Lavin is a member of the industry solutions team in the IBM Dublin Software Lab. He is an Java Enterprise developer whose experience includes working with industry solutions installers for the IBM Integrated Information Core product.

Summary:  InstallAnywhere is widely used to provide multi-platform and multi-language software deployment solution. Learn how to use InstallAnywhere to develop multi-language installers.

View more content in this series

Date:  25 Feb 2013
Level:  Intermediate PDF:  A4 and Letter (402 KB | 12 pages)Get Adobe® Reader®

Activity:  1406 views
Comments:  

Overview

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.

  1. Select Build, then select the Build Configurations tab.
  2. Select the build configuration that you want to edit from the Select Build Configuration list.
  3. Select the Locales sub tab.
  4. Use the check boxes to select languages.
  5. Save the project.

Figure 1. Specify locale settings
A screen capture shows steps to 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
A screen capture shows 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

  1. 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.
  2. Open each non-English locale file, for example, custom_zh_CN, in a text editor, and find the splashScreenGUITitle element. This element typically uses an Installer.#.splashScreenGUITitle key, where # represents the reference ID for the element.
  3. Provide the translated title text as the value for the Installer.#.splashScreenGUITitle key.
  4. Save your changes.

Localize the splash screen image

  1. In the Install task, add all localized splash screen image files to the DO NOT INSTALL folder 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.
  2. 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.
  3. Open each non-English locale file in a text editor and find the splashScreenGUIImageName and splashScreenImagePath elements. These elements are displayed in the locale files as Installer.#.splashScreenGUIImageName and Installer.#.splashScreenImagePath, where # represents the reference ID for the element.
  4. Enter the correct locale-specific file name and path (if necessary) values for the Installer.#.splashScreenGUIImageName and Installer.#.splashScreenImagePath keys.
  5. Save your changes.

Localize the splash screen instructions

  1. Find the locales directory of your project.
  2. Open each non-English locale file in a text editor and find the splashScreenGUIInstructions element. This element typically uses an Installer.#.splashScreenGUIInstructions key, where # represents the reference ID for the element.
  3. Provide the translated instructions text as the value for the Installer.#.splashScreenGUIInstructions key.
  4. Save your changes.

Localize the splash screen confirmation

  1. Find the locales directory of your project.
  2. Open each non-English locale file in a text editor, and find the splashScreenGUIConfirm element. This element typically uses an Installer.#.splashScreenGUIConfirm key, where # represents the reference ID for the element.
  3. Provide the translated confirmation text as the value for the Installer.#.splashScreenGUIConfirm key.
  4. 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

  1. 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
    A screen capture shows choosing language resources.

  2. Open each non-English locale file in a text editor and find the line in the locale file that contains the text LicenseAgrAction.#.resourceName.
  3. Specify the file name of the file that contains the localized license agreement, for example, LA_zh.html.
  4. Find the line that contains the text LicenseAgrAction.#.resourcePath.
  5. 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
A screen capture shows the advanced panel that you use to add get user input commands.

(View a larger version of Figure 4.)

  1. Build for all intended operating systems and locales.
  2. Go to the <project_name>locales_<build_configuration_name> directory.
  3. 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.
  4. 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

  5. Find the matching entries in the custom_zh_CN file.
  6. 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=否

  7. 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$.

  1. In the Advanced Designer, open the Project > Locales task.
  2. Double-click the Bundle Name column of the External Resource Bundle Settings table.
  3. Enter a bundle name for the external resource bundle you want to use.
  4. Double-click the Resource Bundle Path column. The Choose a File dialog box opens.
  5. Locate the directory in which your custom locale properties files are stored and select one of the locale properties files.
  6. 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
A screen capture shows the 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.


Run the installer

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.


Conclusion

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.


Resources

Learn

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

About the authors

Photograph of Jing Fan

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.

Photograph of Zhao Zhuo

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.

Photograph of Raymond Mahon

Raymond Mahon is a member of the industry solutions team in the IBM Dublin Software Lab. He has many years of experience in designing automated solutions and is currently focusing on industry solutions installers development.

Photograph of Brian Lavin

Brian Lavin is a member of the industry solutions team in the IBM Dublin Software Lab. He is an Java Enterprise developer whose experience includes working with industry solutions installers for the IBM Integrated Information Core product.

Report abuse help

Report abuse

Thank you. This entry has been flagged for moderator attention.


Report abuse help

Report abuse

Report abuse submission failed. Please try again later.


developerWorks: Sign in


Need an IBM ID?
Forgot your IBM ID?


Forgot your password?
Change your password

By clicking Submit, you agree to the developerWorks terms of use.

 


The first time you sign into developerWorks, a profile is created for you. Select information in your profile (name, country/region, and company) is displayed to the public and will accompany any content you post. You may update your IBM account at any time.

Choose your display name

The first time you sign in to developerWorks, a profile is created for you, so you need to choose a display name. Your display name accompanies the content you post on developerWorks.

Please choose a display name between 3-31 characters. Your display name must be unique in the developerWorks community and should not be your email address for privacy reasons.

(Must be between 3 – 31 characters.)

By clicking Submit, you agree to the developerWorks terms of use.

 


Rate this article

Comments

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=1
Zone=Industries
ArticleID=858951
ArticleTitle=Improve your industry solution installation, Part 2: Globalize your InstallAnywhere installer
publish-date=02252013