Preparing an Object for Internationalization
InstallShield 2025
Project:
Designing an object that installs different files based on the target machine’s language is similar to designing an installation with the same functionality. One vital difference between objects and standard installation projects makes internationalizing your object slightly more complex than installations. This difference—the fact that the release builder places an object project’s files uncompressed in the disk image—requires you to handle your internationalized files at the feature level. The following sections discuss the steps and strategies required to prepare your object for internationalization.
Adding Languages to Your Object
If you have the Premier edition of InstallShield, you can associate any of the supported languages with your object through the Language tab of the Project Settings dialog box.
Designing Language-Specific File Groups
The most important step in creating an internationalized object is separating your language-specific data into components. This process is best illustrated with an example. If you are supporting three languages, English, French, and German, and you would like English to be the default language, you should have a minimum of four components. The first component will be for English-only files. The Language property for this component should be set to English and all the languages that you are not directly supporting. By doing this, you are enabling your object to be installed on any language, not just the three you support. If the target machine is running in a language other than one of your three supported languages, the English files will be installed.
For the French and German components, simply add the French and German files to their respective components. Set the language of the French component to French and set the language of the German component to German.
Finally, add your language-independent files to another component. Mark this component as language independent. The table below should help to illustrate the layout of your four file groups.
Language of files |
Component language |
All English-specific files |
English + all unsupported languages |
All French-specific files |
French |
All German-specific files |
German |
All language-independent files |
Language independent |
Designing Language-Specific Features
If you would like to include language-specific data in your object, you need to create a feature for each of the languages that you are targeting. This step may seem superfluous, since you cannot actually define a feature’s language. However, due to the way files are stored in the disk image, you cannot add components from multiple languages to one feature. When the Release Wizard runs, it takes all the files within a feature and stores them in the same directory on the release. If you have two files with the same name, but in separate components, one of those files will be overwritten if the two components belong to the same feature. To overcome this problem, you will have to make a separate feature for each language that you are targeting. Then, simply add the corresponding components.