localedef - define locale environment
localedef [-c] [-v] [-U] [-f charmap]
     [-w widthfile] [-i sourcefile]
     [-u code_set_name] localename
The localedef utility converts source definitions for locale categories
  into a format usable by the functions and utilities whose operational behavior
  is determined by the setting of the locale environment variables; see
  environ(5).
The utility reads source definitions for one or more locale
    categories belonging to the same locale from the file named in the -i
    option (if specified) or from standard input.
Each category source definition is identified by the corresponding
    environment variable name and terminated by an END
    category-name statement. The following categories are supported.
LC_CTYPE
Defines character classification and case
  conversion.
LC_COLLATE
Defines collation rules.
LC_MONETARY
Defines the format and symbols used in formatting of
  monetary information.
LC_NUMERIC
Defines the decimal delimiter, grouping and grouping
  symbol for non-monetary numeric editing.
LC_TIME
Defines the format and content of date and time
  information.
LC_MESSAGES
Defines the format and values of affirmative and negative
  responses.
The following options are supported:
-c
Creates permanent output even if warning messages have
  been issued.
-v
Emit verbose debugging output on standard output.
-U
Ignore the presence of character symbols that have no
  matching character definition. This facilitates the use of a common locale
  definition file to be used across multiple encodings, even when some symbols
  are not present in a given encoding.
Support for this option is an illumos extension.
-f charmap
Specifies the pathname of a file containing a mapping of
  character symbols and collating element symbols to actual character encodings.
  This option must be specified if symbolic names (other than collating symbols
  defined in a collating-symbol keyword) are used. If the -f
  option is not present, the default character mapping will be used.
-w widthfile
The path name of the file containing character screen
  width definitions. If not supplied, then default screen widths will be
  assumed, which will generally not account for East Asian encodings requiring
  more than a single character cell to display, nor for combining or accent
  marks that occupy no additional screen width.
The support for width files is an illumos extension.
-i sourcefile
The path name of a file containing the source
  definitions. If this option is not present, source definitions will be read
  from standard input.
-u code_set_name
Specifies the name of a codeset used as the target
  mapping of character symbols and collating element symbols whose encoding
  values are defined in terms of the ISO/IEC 10646-1: 2000 standard position
  constant values. See NOTES.
The following operand is supported:
localename
Identifies the locale. If the name contains one or more
  slash characters, localename will be interpreted as a path name where
  the created locale definitions will be stored. This capability may be
  restricted to users with appropriate privileges. (As a consequence of
  specifying one localename, although several categories can be processed
  in one execution, only categories belonging to the same locale can be
  processed.)
localedef creates a directory of files that represents the locale's data.
  The contents of this directory should generally be copied into the appropriate
  subdirectory of /usr/lib/locale in order the definitions to be visible to
  programs linked with libc.
See environ(5) for definitions of the following environment variables
  that affect the execution of localedef: LANG, LC_ALL,
  LC_COLLATE, LC_CTYPE, LC_MESSAGES, and NLSPATH.
The following exit values are returned:
0
No errors occurred and the locales were successfully
  created.
1
Warnings occurred and the locales were successfully
  created.
2
The locale specification exceeded implementation limits
  or the coded character set or sets used were not supported by the
  implementation, and no locale was created.
>3
Warnings or errors occurred and no output was
  created.
If an error is detected, no permanent output will be created.
/usr/lib/locale/localename/
The directory containing locale data.
See attributes(5) for descriptions of the following attributes:
  
    | ATTRIBUTE
      TYPE | ATTRIBUTE VALUE | 
  
    | Interface Stability | Standard | 
locale(1), iconv_open(3C), nl_langinfo(3C),
  strftime(3C), attributes(5), charmap(5),
  environ(5), extensions(5), locale(5), standards(5)
If warnings occur, permanent output will be created if the -c option was
  specified. The following conditions will cause warning messages to be issued:
  - o
- If a symbolic name not found in the charmap file is used for the
      descriptions of the LC_CTYPE or LC_COLLATE categories (for
      other categories, this will be an error condition).
 
  - o
- If optional keywords not supported by the implementation are present in
      the source.
 
When the -u option is used, the code_set_name option-argument is
  interpreted as a name of a codeset to which the ISO/IEC 10646-1: 2000 standard
  position constant values are converted. Both the ISO/IEC 10646-1: 2000
  standard position constant values and other formats (decimal, hexadecimal, or
  octal) are valid as encoding values within the charmap file. The codeset can
  be any codeset that is supported by the iconv_open(3C) function on the
  system.
When conflicts occur between the charmap specification of
    code_set_name, mb_cur_max, or mb_cur_min and the
    corresponding value for the codeset represented by the -u
    option-argument code_set_name, the localedef utility fails as
    an error.
When conflicts occur between the charmap encoding values specified
    for symbolic names of characters of the portable character set and the
    character encoding values defined by the US-ASCII, the result is
    unspecified.