Localization
Globalization enables you to work in a cultural context that is comfortable for you through locales, character sets, and a number of special environment variables. The process of adapting an internationalized application or program, particular to a language or cultural milieu, is termed localization.
A locale is the subset of your environment that deals with language and cultural
conventions. When specifying a locale, the convention is to use the descriptive locale name. See the
section on locale naming conventions in z/OS XL C/C++ Programming Guide. It is made up of a number of categories, each of which is
associated with an environment variable and controls a specific aspect of the environment. The
following list shows the categories and their spheres of influence:
- LC_COLLATE
- Collating (sorting) order.
- LC_CTYPE
- Character classification and case conversion.
- LC_MESSAGES
- Formats of informative and diagnostic messages and interactive responses.
- LC_MONETARY
- Monetary formatting.
- LC_NUMERIC
- Numeric, nonmonetary formatting.
- LC_TIME
- Date and time formats.
- LC_SYNTAX
- EBCDIC-variant character encodings used by some C functions and utilities.
To give a locale control over a category, set the corresponding variable
to the name of
the locale. In addition to the environment variables associated with the categories, there are two
other variables which are used in conjunction with localization, LANG and LC_ALL. All of these
variables affect the performance of the shell commands. The general effects apply to most commands,
but certain commands such as sort, with its dependence on LC_COLLATE, require
special attention to be paid to one or more of the variables. This section discusses such cases in
the Localization topic of the command. The effects of each environment variable is as follows:
- LANG
- Determines the international language value. Utilities and applications can use the information from the given locale to provide error messages and instructions in that locale's language. If LC_ALL variable is not defined, any undefined variable is treated as though it contained the value of LANG.
- LC_ALL
- Overrides the value of LANG and the values of any of the other variables starting with LC_.
- LC_COLLATE
- Identifies the locale that controls the collating (sorting) order of characters and determines the behavior of ranges, equivalence classes, and multicharacter collating elements.
- LC_CTYPE
- Identifies the locale that defines character classes (for example, alpha, digit, blank) and their behavior (for example, the mapping of lowercase letters to uppercase letters). This locale also determines the interpretation of sequences of bytes as characters (such as single-byte versus double-byte characters).
- LC_MESSAGES
- Identifies the locale that controls the processing of affirmative and negative responses. This locale also defines the language and cultural conventions used when writing messages.
- LC_MONETARY
- Determines the locale that controls monetary-related numeric formatting (for example, currency symbol, decimal point character, and thousands separator).
- LC_NUMERIC
- Determines the locale that controls numeric formatting (for example, decimal point character and thousands separator).
- LC_TIME
- Identifies the locale that determines the format of time and date strings.
- LC_SYNTAX
- Identifies the locale that defines the encodings for the variant characters in the portable character set.
For example,
NLSPATH="/system/nlslib/%N.cat"
specifies that the z/OS shell is to look for all message catalogs in the
directory /system/nlslib, where the catalog name is to be constructed from the
name parameter passed to the z/OS shell with the suffix .cat.Substitution fields consist of a % symbol, followed by a single-letter keyword. These keywords
are currently defined:
- %N
- The value of the name parameter
- %L
- The value of the LC_MESSAGES category, or LANG, depending on how the catopen() function that opens this catalog is coded. For more information, see catopen() in z/OS XL C/C++ Runtime Library Reference.
- %l
- The language element from the LC_MESSAGES category
- %t
- The territory element from the LC_MESSAGES category
- %c
- The codeset element from the LC_MESSAGES category
%N
. For example:
NLSPATH=":%N.cat:/nlslib/%L/%N.cat"
specifies that the z/OS shell should look for the requested message catalog
in name, name.cat, and
/nlslib/category/name.cat,
where category is the value of the LC_MESSAGES or LANG category of the
current locale.Do not set the NLSPATH variable unless you need to override the default system path. Otherwise the commands might behave unpredictably.