locale(1)
locale --
get locale-specific information
Synopsis
locale [-a | -m]
locale [-ck] name ...
Description
The locale command writes information about the current locale
environment, or all public locales, to the standard output.
For the purposes of this section, a public locale
is one provided by the implementation that is accessible to the application.
When locale is invoked without any arguments, it summarizes the
current locale environment for each locale category as determined by
the settings of the environment variables
LANG, LC_ALL, LC_COLLATE, LC_CTYPE,
LC_MESSAGES, LC_NUMERIC, and LC_TIME.
When invoked with operands, it writes values that have been assigned
to the keywords in the locale categories, as follows:
-
Specifying a keyword name selects the named keyword and the
category containing that keyword.
-
Specifying a category name selects the named category and all
keywords in that category.
Options
The following options are supported:
-a-
Write information about all available public locales.
-c-
Write the names of selected locale categories; see
``Output''.
The -c option increases readability when more than one category
is selected (for example, via more than one keyword name or via a
category name).
It is valid both with and without the -k option.
-k-
Write the names and values of selected keywords.
The implementation may omit values for some keywords; see
``Operands''.
-m-
Write names of all charmap source files available on the system for
use with
localedef(1).
Operands
name-
The name of a locale category (as defined in
``Internationalization'' in Programming with system calls and libraries),
the name of a keyword in a locale category, or the reserved name
charmap.
The named category or keyword will be selected for output.
If a single name represents both a locale category name and a
keyword name in the current locale, the results are unpredictable.
Otherwise, both category and keyword names can be specified as name
operands, in any sequence.
Environment variables
The following environment variables affect the execution of locale:
LANG-
Provide a default value for the internationalization variables that
are unset or null.
If LANG is unset or null, the corresponding value from the
implementation-specific default locale will be used.
If any of the internationalization variables contains an invalid
setting,
the utility will behave as if none of the variables had been defined.
LC_ALL-
If set to a non-empty string value, override the values of all the
other internationalization variables.
LC_CTYPE-
Determine the locale for the interpretation of sequences of bytes of
text data as characters (for example, single- as opposed to multi-byte
characters in arguments).
LC_MESSAGES-
Determine the locale that should be used to affect the format and
contents of diagnostic messages written to standard error.
If any of the internationalization variables contains an invalid
setting, the utility will behave as if none of the variables had
been defined.
The LANG and LC_
environment variables must specify the current
locale environment to be written out; they will be used if the
-a option is not specified.
Output
If locale is invoked without any options or operands,
the names and values of the LANG and LC_ environment
variables
described in this document will be written to the standard output,
one variable per line, with LANG first, and each line using the
following format.
Only those variables set in the environment and not overridden by
LC_ALL will be written using this format:
"variable_name=value"
The names of those LC_
variables associated with locale categories
that are not set in the environment or are overridden by LC_ALL
will be written in the following format:
"variable_name=\"implied_value\""
The implied_value is the name of the locale that has been
selected for that category, based on the values in LANG
and LC_ALL.
The value and implied value shown above will be properly quoted for
possible later reentry to the shell.
The value will not be quoted using double-quotes (so that it can
be distinguished by the user from the implied value
case, which always requires double-quotes).
The LC_ALL variable will be written last, using the first format
shown above.
If it is not set, it will be written as:
"LC_ALL="
If any arguments are specified:
-
If the -a option is specified, the names of all the public
locales will be written one per line.
-
If the -c option is specified, the names of all selected categories
will be written one per line.
If keywords are also selected for writing (see following items),
the category name output will precede the keyword output for that category.
If the -c option is not specified, the names of the categories
will not be written; only the keywords, as selected by the name
operand, will be written.
-
If the -k option is specified, the names and values of selected
keywords will be written.
If a value is non-numeric, it will be written in the following format:
"keyword_name=\"value\""
If the keyword was charmap, the name of the charmap (if any)
that was specified via the
localedef(1)
-f option when
the locale was created will be written, with the word charmap
as keyword name.
If a value is numeric, it will be written in the following format:
"keyword_name=value"
Compound keyword values (list entries) will be separated in the output
by semicolons.
When included in keyword values, the semicolon, the
double-quote, the backslash and any control character will be preceded
(escaped) with the escape character.
-
If the -k option is not specified, selected keyword values will be
written one per line.
If the keyword was charmap, the name of the charmap (if any)
that was specified via the
localedef(1)
-f option when
the locale was created will be written.
-
If the -m option is specified, then a list of all available
charmaps will be written one per line, where the charmap name
is in a format suitable for use as the option-argument to the
localedef(1)
-f option.
Exit codes
An exit values of 0 indicates that all the requested
information was found and output successfully; an exit code greater
than 0 indicates that an error occurred.
Usage
This implementation of locale does not write out the actual values for
keywords in the categories LC_CTYPE and
LC_COLLATE (except for the
char class keyword of LC_CTYPE), but does
write out the categories (allowing an application to determine, for
example, which character classes are available).
Examples
In the following examples, the assumption is that locale environment
variables are set as follows:
LANG=locale_x
LC_COLLATE=locale_y
The command locale would result in the following output:
LANG=locale_x
LC_CTYPE="locale_x"
LC_COLLATE=locale_y
LC_TIME="locale_x"
LC_NUMERIC="locale_x"
LC_MONETARY="locale_x"
LC_MESSAGES="locale_x"
LC_ALL=
The command LC_ALL=POSIX locale -ck decimal_point
would produce:
LC_NUMERIC decimal_point="."
The following command shows an application of locale
to determine whether a user-supplied response is affirmative:
if printf "%s\n" "$response" | grep -Eq "$(locale yesexpr)"
then
affirmative processing goes here
else
non-affirmative processing goes here
fi
References
localedef(1).
© 2004 The SCO Group, Inc. All rights reserved.
UnixWare 7 Release 7.1.4 - 25 April 2004