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