Using Locale Conditions in Advanced UI and Suite/Advanced UI Projects

InstallShield 2016

Project • This information applies to the following project types:

Advanced UI
Suite/Advanced UI

Edition • The Advanced UI project type is available in the Professional edition of InstallShield. The Suite/Advanced UI project type is available in the Premier edition of InstallShield. For information about the differences between these two project types, see Advanced UI Projects vs. Suite/Advanced UI Projects.

The locale type of condition in an Advanced UI or Suite/Advanced UI project has several subsettings. The following table describes the formats that you can use for specifying the languages in each of these subsettings.

Subsettings Under the Locale Condition Setting

Setting

Format for Values in This Setting

Notes

User Interface

Enter locale identifiers (LCIDs) in any of the following formats:

Decimal LCID; for example: 1033
Hexadecimal LCID preceded with 0x; for example: 0x409
Locale name, which is checked only on Windows Vista and later systems, and ignored on earlier systems; for example: en-us, en, zh-CN

You can optionally precede an LCID or name with a tilde (~) to check for a language-only match, ignoring the country or region.

For example, an entry of ~1033—for English (United States)—results in a match on a target system that uses Australian English, UK English, U.S. English, or other regional variants of English.

At run time, the installation uses the following functions to check the user interface on target systems:

GetUserDefaultLCID
GetSystemDefaultLCID
GetUserDefaultLocaleName (only on Windows Vista and later systems)
GetSystemDefaultLocaleName (only on Windows Vista and later systems)

For a list of LCIDs, see Locale IDs Assigned by Microsoft on MSDN.

Operating System

Enter LCIDs in either of the following formats:

Decimal LCID; for example: 1033
Hexadecimal LCID preceded with 0x; for example: 0x409

You can optionally precede an LCID with a tilde to check for a language-only match, ignoring the country or region.

For example, an entry of ~1033—for English (United States)—results in a match on a target system that uses Australian English, UK English, U.S. English, or other regional variants of English.

One example of when this condition is useful is for .NET Framework 1.1 service packs for Windows Server 2003; these service packs target specific operating system languages.

At run time, the installation uses the function GetSystemDefaultUILanguage to check the language of the operating system on target systems.

For a list of LCIDs, see Locale IDs Assigned by Microsoft on MSDN.

ANSI Code Page

Code page identifiers; for example: 932

At run time, the installation uses the GetACP function to check the ANSI code page of the target system.

Check the Knowledge Base for information about this error, or request technical support.For a list of code page identifiers, see Code Page Identifiers on MSDN.

If you want to check the user interface, operating system, or ANSI code page on target systems for any one of two or more languages, you can specify multiple values and separate them with a comma (,). Any spaces that are included in the setting are ignored. For example, to check for either a U.S. English or Japanese user interface, you could enter the following value in the User Interface setting:

0x409, 0x411

In this scenario, the User Interface condition is met if the target system’s UI is U.S. English or Japanese.

Note that if you specify values in two or more locale settings, each of those locale settings must have a match in order for the condition to be met. For example, if you specify languages in the User Interface and ANSI Code Page settings, the condition evaluates as true whenever one of the User Interface languages are a match and also one of the ANSI Code Page languages are a match.

See Also