localedef(4)


localedef -- format for locale specification source file

Description

This manual page describes the format of a source file used as input to the localedef command. This file (called a localedef( ) file in this manual page) defines information about a locale. The localedef command uses the localization specifications in the source file to create data files used by the localization system to map system input and output into a local format.

A locale defines your execution environment in terms of language and cultural conventions. It consists of one or more categories corresponding to these environment variable names:


LC_COLLATE
Collation order used by commands such as sort and uniq.

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, non-monetary formatting.

LC_TIME
Date and time formats.

When you run the localedef command, only those categories defined in the localedef( ) file used as input to the command are defined for the locale created.

Category source definition

The localedef( ) file consists of one or more category source definitions. A category source definition consists of a category header (one of the strings listed above), the category body (consisting of one or more lines of text), and the string END.

A category body contains lines of text. Each line contains an identifier and (optionally) operands. Identifiers are keywords (identifying a locale element) or collating elements. Operands may be characters, strings of characters, or collating elements. (Strings are enclosed in double quotes; literal double quotes in strings should be escaped by a preceding backslash.)

Comments are allowed in the localedef( ) file. By default, the comment character is a pound sign (#); blank lines and lines containing a # in the first position are ignored. The comment character can be changed if the first category header in the file is preceded by a line modifying the comment character. The line should have the following format:

   comment_char #
where # is the alternative comment character to use.

Lines can be continued by placing a backslash at the end of the line; the backslash and subsequent newline character are ignored. Comment lines are not treated in this way (the backslash is ignored, because it is read as part of the comment).

Individual characters, characters in strings, and collating elements, are represented by symbolic names. Alternatively, characters can be represented by themselves, or as octal, hexadecimal, or decimal values. Octal numbers are two or three digits, preceded by a backslash; hexadecimal numbers are two digits, preceded by \x and decimal numbers are two or more digits, preceded by \d.

Symbolic values are enclosed in angle brackets (< and >). The symbolic name (including angle brackets) must match a symbolic name defined in the charmap file specified by localedef -f.

LC_CTYPE

This category section defines character classification, case conversion, and other character attributes. In addition, a series of characters within a single character set can be represented by three adjacent periods ``...'', representing an ellipsis.

The following keywords are recognized:


upper
Defines characters classified as uppercase.

lower
Defines characters classified as lowercase.

alpha
Defines characters classified as letters (upper- or lowercase).

digit
Defines characters classified as digits.

space
Defines characters classified as whitespace.

cntrl
Defines characters classified as control characters.

punct
Defines characters classified as punctuation.

graph
Defines characters classified as printable characters, not including the space character.

print
Defines characters classified as printable characters, including the space character.

xdigit
Defines characters classified as hexadecimal digits. (Note that both upper and lowercase versions of the letters "A" to "F" are included in the POSIX locale; this practice is recommended.)

blank
Defines characters classified as blank characters.

toupper
Defines the mapping of lowercase letters to uppercase letters. (The operand consists of character pairs separated by semicolons; the characters in each pair are separated by a comma and enclosed in parentheses. The first character is lowercase, the second is its uppercase equivalent.)

tolower
Defines the mapping of uppercase letters to lowercase letters. (Same format as in toupper, except that the first character in each pair is uppercase and the second is lowercase.)

copy
Specify an existing locale to be used in the definition of this category. If this keyword is specified, no other keyword is allowed.

Note that some of the above categories are mutually exclusive or automatically inclusive. For example, it is not possible for a character to be alpha and digit. See the X/Open Interface Definitions, Version 4 Issue 2 for further details.

LC_COLLATE

This category section provides a collation sequence for utilities that rely on sorting (such as sort, uniq, and awk, regular expression matching, and some system calls.

A collation sequence defines the order between collating elements (characters and multibyte collating sequences) in the locale. The following keywords are recognized:


collating-element
Defines a collating-element symbol representing a multicharacter collating element.

collating-symbol
Defines a collating symbol for use in collation order statements.

order_start
Define collation rules. This statement is followed by one or more collation order statements, that assign character collation values and weights to collating elements. The syntax of the order_start command is:
   order_start <sort_rules>;<sort_rules> ... ;

The following sort_rules collating weights are allowed:


backward
Specifies that comparison operations for the weight level proceed from the end of the string towards the beginning of the string.

forward
Specifies that comparison operations for the weight level proceed from start of string towards the end of the string.

position
Specifies that comparison operations for the weight level will consider the relative position of elements in the strings not subject to IGNORE.

order_end
Defines the end of collation order statements.

copy
Specifies an existing locale to copy the collating sequence from. (If used, no other keyword is permitted.)

See the X/Open Interface Definitions, Version 4 Issue 2 for further details.

LC_MONETARY

This category section defines the rules and symbols used to format monetary numeric information. The following items are defined in this section:

int_curr_symbol
Specifies the international currency symbol. This is a four-character string; the first three characters contain the alphabetic international currency symbol (in accordance with ISO 4217:1987), while the fourth character is the separator used between the currency symbol and the monetary quantity.

currency_symbol
Specifies the string used as the local currency symbol.

mon_decimal_point
Specifies the symbol used as the decimal delimiter in monetary formatted quantities.

mon_thousands_sep
Specifies the symbol used as a separator for groups of digits to the left of a decimal delimiter in monetary formatted quantities.

mon_grouping
Specifies the size of each group of digits in formatted monetary quantities. Requires as an operand a sequence of integers separated by semicolons. Each integer specifies the number of digits in each group, with the initial integer defining the size of the group immediately preceding the decimal delimiter, and the following integers defining the groups before that. If the last integer is not -1, then the size of the previous group will be repeatedly used for the remainder of the digits. If the last integer is -1, then no further grouping is performed.

positive_sign
Specifies the sign used to indicate a non-negative formatted monetary quantity.

negative_sign
Specifies the sign used to indicate a negative formatted monetary quantity.

int_frac_digits
Specifies an integer representing the number of fractional digits to be written in a formatted monetary quantity using int_curr_symbol.

frac_digits
Specifies an integer representing the number of fractional digits to be written in a formatted monetary quantity using currency_symbol.

p_cs_precedes
Specifies that the currency_symbol or int_curr_symbol precedes the monetary quantity (if value is 1) or follows the monetary quantity (if value is 0). This only applies for non-negative monetary quantities.

p_sep_by_space
Specifies that no space separates the currency symbol from the monetary quantity (if value is 0), or that a space separates the currency symbol from the quantity (if value is 1), or that a space separates the symbol and the sign string (if value is 2). This only applies to non-negative monetary quantities.

n_cs_precedes
Specifies that the currency_symbol or int_curr_symbol precedes the monetary quantity (if value is 1) or follows the monetary quantity (if value is 0). This only applies for negative monetary quantities.

n_sep_by_space
Specifies that no space separates the currency symbol from the monetary quantity (if value is 0), or that a space separates the currency symbol from the quantity (if value is 1), or that a space separates the symbol and the sign string (if value is 2). This only applies to negative monetary quantities.

p_sign_posn
Specifies the positioning of the positive_sign for a non-negative monetary quantity. The following values are possible:

0
Parentheses enclose the quantity and the currency symbol.

1
The sign string precedes the quantity and the currency symbol.

2
The sign string follows the quantity and the currency symbol.

3
The sign string precedes the currency symbol.

4
The sign string follows the currency symbol.

n_sign_posn
Specifies the positioning of the negative_sign for a negative monetary quantity. (Accepts the same values as p_sign_posn.)

copy
Specifies the name of an existing locale from which to copy the definition of this section. If specified, no other keywords are allowed.

See the X/Open Interface Definitions, Version 4 Issue 2 for further details.

LC_NUMERIC

This category defines the rules and symbols used to format non-monetary numeric information. The following keywords are recognized:

copy
Specifies the name of an existing locale to use as the definition for this category. (If specified, no other keywords are allowed.)

decimal_point
Specifies a string containing the symbol used as the decimal delimiter. This keyword cannot be omitted and cannot be set to the empty string.

grouping
Specifies the size of each group of digits to the left of the decimal point (or other separator). The operand is a sequence of integers separated by semicolons. Each integer specifies the number of digits in each group, in ascending ordinality. If the last integer is not -1, the size of the last group is repeatedly applied to the remaining digits; if the last integer is -1, then no further grouping is applied.

thousands_sep
Specifies the symbol used as a separator for groups of digits to the left of the decimal point.

See the X/Open Interface Definitions, Version 4 Issue 2 for further details.

LC_TIME

This category defines the formatting of time and date values. The definitions imply a Gregorian style calendar: formatting time strings for other types of calendar is outside the scope of the X/Open specifications.

The following mandatory keywords are recognized:


abday
Specify the abbreviated weekday names, corresponding to the %a field descriptor. The operand consists of seven semicolon separated strings, each surrounded by double quotes. The first string corresponds to Sunday, the second to Monday, and so on.

day
Specify the full weekday names, corresponding to the %A field descriptor. The operand consists of seven semicolon separated strings, each surrounded by double quotes. The first string corresponds to Sunday, the second to Monday, and so on.

abmon
Specify the abbreviated month names, corresponding to the %b field descriptor. The operand consists of twelve semicolon separated strings, each surrounded by double quotes. The first string corresponds to the first month (January), the second to the second month, and so on.

mon
Specify the full month names, corresponding to the %B field descriptor. The operand consists of twelve semicolon separated strings, each surrounded by double quotes. The first string corresponds to the first month (January), the second to the second month, and so on.

d_t_fmt
Specify the date and time representation, corresponding to the %c field descriptor. The operand consists of a string and can contain any combination of characters and field descriptors. In addition the string can contain escape sequences (\\, \a, \b, \f, \n, \r, \t, \v).

d_fmt
Specify the date representation, corresponding to the %x field descriptor. (Operand as for d_t_fmt.)

t_fmt
Specify the time representation, corresponding to the %X field descriptor. (Operand as for d_t_fmt.)

am_pm
Specify the AM/PM representation, corresponding to the %p field descriptor. The operand consists of two double-quoted strings, separated by a semicolon.

t_fmt_ampm
Specify the time representation in the 12-hour format, corresponding to the %r field descriptor. (Operand as for d_t_fmt.)

copy
Specifies the name of an existing locale from which to copy the definition of this section. If specified, no other keywords are allowed.

ABDAY_x
The abbreviated weekday names, where x is a number from 1 to 7.

DAY_x
The full weekday names, where x is a number from 1 to 7.

ABMON_x
The abbreviated month names, where x is a number from 1 to 12.

MON_x
The full month names, where x is a number from 1 to 12.

D_T_FMT
The appropriate date and time representation.

D_FMT
The appropriate date representation.

T_FMT
The appropriate time representation.

AM_STR
The appropriate AM affix.

PM_STR
The appropriate PM affix.

T_FMT_AMPM
The appropriate time representation in the 12 hour clock format with AM_STR and PM_STR.

ERA
The Era description segments (specifying how years are counted and displayed for each era in a locale).

ERA_D_FMT
The era date format.

ALT_DIGITS
Specifies the alternative symbols for digits, corresponding to the %O conversion specification modifier. The operands consist of semicolon-separated symbols. The first is the alternative symbol for zero, the second is the alternative symbol for one, and so on. (A maximum of 100 alternative symbols are supported.)

See the X/Open Interface Definitions, Version 4 Issue 2 for further details.

LC_MESSAGES

This category defines the format and values for affirmative or negative responses. The following keywords are recognized:

yesexpr
Specifies an operand that describes the acceptable affirmative response to a question expecting a yes/no response. Operand is an extended regular expression.

noexpr
Specifies an operand that describes the acceptable negative response to a question expecting a yes/no response. Operand is an extended regular expression.

copy
Specifies the name of an existing locale from which to copy the definition of this section. If specified, no other keywords are allowed.

See the X/Open System Interface Definitions, Version 4 Issue 2 for further details.

References

awk(1), localedef(1), locale(1), locale(4), sort(1), uniq(1).

Standards conformance

localedef( ) is conformant with X/Open Interface Definitions, Version 4 Issue 2.
© 2005 The SCO Group, Inc. All rights reserved.
SCO OpenServer Release 6.0.0 - 02 June 2005