Language Variable Macros

To minimize the number of Application objects required to distribute the same application in different languages, you can use language variables to represent language-related information in MSI Application objects. Language variables are not supported for simple, AOT/AXT, terminal server, or Web applications.

For example, assume you want to distribute language-appropriate versions of the ZENworks Desktop Management Agent, which has a separate .msi file for each language. By default, the Desktop Management Agent's .msi files are installed to the Desktop Management server's sys:\public\zenworks\zfdagent\language directory, where language represents the various supported languages. In the Desktop Management Agent's Application object, you could include a language variable in the source path for the language directory. For example:

\\server\sys\public\zenworks\zfdagent\%LOCALE_SYS_NATIVE_LANG%\zfdagent.msi

During distribution, Application Launcher retrieves the requested language information from the workstation's system and substitutes it for the language variable.

As another example, assume you have an .msi file such as app1.msi. When installing a specific language, you must apply a language-specific transform (.mst) file. To accommodate this need, you could create language directories for each of the .mst files and then use a variable for the language directory when specifying the transform path.

\\server\sys\public\zenworks\app1\%LOCALE_SYS_NATIVE_LANG%\app1.mst

Language variables can be used in the same MSI Application object properties that other macro variables (special Windows macros, environment variables, and so forth) can be used. For a list of these locations, see Application Object Properties Where Macros Can Be Used

The following table describes the available language variables.

Language Variable Description

%LOCALE_SYS_DEFAULT_ANSI_CP%

Retrieves the American National Standards Institute (ANSI) code page associated with the system locale. If the locale does not use an ANSI code page, the value is 0.

Example: 1252

%LOCALE_SYS_DEFAULT_OEM_CP%

Retrieves the original equipment manufacturer (OEM) code page associated with the system locale. If the locale does not use an OEM code page, the value is 1.

Example: 437

%LOCALE_SYS_LANGID%

Retrieves the language identifier for the system locale. The language identifier is a standard international numeric abbreviation for the language in a country or geographical region.

Example: 0409

%LOCALE_SYS_ABBR_LANG%

Specifies the abbreviated name of the system language. In most cases, it is created by taking the two-letter language abbreviation from the International Organization for Standardization (ISO) Standard 639 and adding a third letter, as appropriate, to indicate the sublanguage.

Example: ENU

%LOCALE_SYS_ENG_LANG%

Specifies the full English name of the system language from ISO Standard 639. This is always restricted to characters that can be mapped into the ASCII 127-character subset.

Example: English

%LOCALE_SYS_LANG%

Specifies the full localized name of the system language. This name is based on the localization of the product and might vary for each localized version.

Example: English (United States)

%LOCALE_SYS_ISO639_LANG%

Specifies the abbreviated name of the system language based only on ISO Standard 639.

Example: en

%LOCALE_SYS_NATIVE_LANG%

Specifies the native name of the system language.

Example: English

%LOCALE_USER_DEFAULT_ANSI_CP%

Retrieves the American National Standards Institute (ANSI) code page associated with the user locale. If the locale does not use an ANSI code page, the value is 0.

Example: 1252

%LOCALE_USER_DEFAULT_OEM_CP%

Retrieves the original equipment manufacturer (OEM) code page associated with the user locale. If the locale does not use an OEM code page, the value is 1.

Example: 850

%LOCALE_USER_LANGID%

Retrieves the language identifier for the user locale. The language identifier is a standard international numeric abbreviation for the language in a country or geographical region.

Example: 0c09

%LOCALE_USER_ABBR_LANG%

Specifies the abbreviated name of the user language. In most cases, it is created by taking the two-letter language abbreviation from the International Organization for Standardization (ISO) Standard 639 and adding a third letter, as appropriate, to indicate the sublanguage.

Example: ENA

%LOCALE_USER_ENG_LANG%

Specifies the full English name of the user language from ISO Standard 639. This is always restricted to characters that can be mapped into the ASCII 127-character subset.

Example: English

%LOCALE_USER_LANG%

Specifies the full localized name of the user language. This name is based on the localization of the product and might vary for each localized version.

Example: English (Australia)

%LOCALE_USER_ISO639_LANG%

Specifies the abbreviated name of the user language based only on ISO Standard 639.

Example: en

%LOCALE_USER_NATIVE_LANG%

Specifies the native name of the user language.

Example: English