cc7edd258c
Provide a way to ask for an opaque version string for a locale_t, so that potential changes in sort order can be detected. Similar to ICU's ucol_getVersion() and Windows' GetNLSVersionEx(), this API is intended to allow databases to detect when text order-based indexes might need to be rebuilt. The CLDR version is extracted from CLDR source data by the Makefile under tools/tools/locale, written into the machine-generated Makefile under shared/colldef, passed to localedef -V, and then written into LC_COLLATE file headers. The initial version is 34.0. tools/tools/locale was recently updated to pull down 35.0, but the output hasn't been committed under share/colldef yet, so that will provide the first observable change when it happens. Other versioning schemes are possible in future, because the format is unspecified. Reviewed by: bapt, 0mp, kib, yuripv (albeit a long time ago) Differential Revision: https://reviews.freebsd.org/D17166
281 lines
9.1 KiB
Groff
281 lines
9.1 KiB
Groff
.\" Copyright (c) 1992, X/Open Company Limited All Rights Reserved
|
|
.\" Portions Copyright (c) 2003, Sun Microsystems, Inc. All Rights Reserved
|
|
.\" Portions Copyright 2013 DEY Storage Systems, Inc.
|
|
.\" Sun Microsystems, Inc. gratefully acknowledges The Open Group for
|
|
.\" permission to reproduce portions of its copyrighted documentation.
|
|
.\" Original documentation from The Open Group can be obtained online at
|
|
.\" http://www.opengroup.org/bookstore/.
|
|
.\" The Institute of Electrical and Electronics Engineers and The Open Group,
|
|
.\" have given us permission to reprint portions of their documentation. In
|
|
.\" the following statement, the phrase "this text" refers to portions of the
|
|
.\" system documentation. Portions of this text are reprinted and reproduced
|
|
.\" in electronic form in the Sun OS Reference Manual, from IEEE Std 1003.1,
|
|
.\" 2004 Edition, Standard for Information Technology -- Portable Operating
|
|
.\" System Interface (POSIX), The Open Group Base Specifications Issue 6,
|
|
.\" Copyright (C) 2001-2004 by the Institute of Electrical and Electronics
|
|
.\" Engineers, Inc and The Open Group. In the event of any discrepancy between
|
|
.\" these versions and the original IEEE and The Open Group Standard, the
|
|
.\" original IEEE and The Open Group Standard is the referee document. The
|
|
.\" original Standard can be obtained online at
|
|
.\" http://www.opengroup.org/unix/online.html.
|
|
.\" This notice shall appear on any product containing this material.
|
|
.\" The contents of this file are subject to the terms of the Common
|
|
.\" Development and Distribution License (the "License"). You may not use
|
|
.\" this file except in compliance with the License.
|
|
.\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or
|
|
.\" http://www.opensolaris.org/os/licensing. See the License for the specific
|
|
.\" language governing permissions and limitations under the License.
|
|
.\" When distributing Covered Code, include this CDDL HEADER in each file and
|
|
.\" include the License file at usr/src/OPENSOLARIS.LICENSE. If applicable,
|
|
.\" add the following below this CDDL HEADER, with the fields enclosed by
|
|
.\" brackets "[]" replaced with your own identifying information:
|
|
.\" Portions Copyright [yyyy] [name of copyright owner]
|
|
.\"
|
|
.\" $FreeBSD$
|
|
.\"
|
|
.Dd November 8, 2020
|
|
.Dt LOCALEDEF 1
|
|
.Os
|
|
.Sh NAME
|
|
.Nm localedef
|
|
.Nd define locale environment
|
|
.Sh SYNOPSIS
|
|
.Nm
|
|
.Op Fl bcDlUv
|
|
.Op Fl f Ar charmap
|
|
.Op Fl i Ar sourcefile
|
|
.Op Fl u Ar codeset
|
|
.Op Fl w Ar widthfile
|
|
.Ar localename
|
|
.Sh DESCRIPTION
|
|
The
|
|
.Nm
|
|
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
|
|
.Xr environ 7 .
|
|
.Pp
|
|
The utility reads source definitions for one or more locale categories
|
|
belonging to the same locale from the file named in the
|
|
.Fl i
|
|
option (if specified) or from standard input.
|
|
.Pp
|
|
Each category source definition is identified by the corresponding environment
|
|
variable name and terminated by an
|
|
.Sy END
|
|
.Em category-name
|
|
statement.
|
|
The following categories are supported:
|
|
.Bl -tag -width ".Ev LC_MONETARY"
|
|
.It Ev LC_CTYPE
|
|
Defines character classification and case conversion.
|
|
.It Ev LC_COLLATE
|
|
Defines collation rules.
|
|
.It Ev LC_MONETARY
|
|
Defines the format and symbols used in formatting of monetary information.
|
|
.It Ev LC_NUMERIC
|
|
Defines the decimal delimiter, grouping and grouping symbol for non-monetary
|
|
numeric editing.
|
|
.It Ev LC_TIME
|
|
Defines the format and content of date and time information.
|
|
.It Ev LC_MESSAGES
|
|
Defines the format and values of affirmative and negative responses.
|
|
.El
|
|
.Pp
|
|
The following options are supported:
|
|
.Bl -tag -width indent
|
|
.It Fl b
|
|
Use big-endian byte order for output.
|
|
.It Fl c
|
|
Creates permanent output even if warning messages have been issued.
|
|
.It Fl D
|
|
BSD-style
|
|
output.
|
|
Rather than the default of creating the
|
|
.Ar localename
|
|
directory and creating files like
|
|
.Pa LC_CTYPE ,
|
|
.Pa LC_COLLATE ,
|
|
etc.\& in that directory,
|
|
the output file names have the format
|
|
.Dq <localename>.<category>
|
|
and are dumped to the current directory.
|
|
.It Fl f Ar 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
|
|
.Sy collating-symbol
|
|
keyword) are used.
|
|
If the
|
|
.Fl f
|
|
option is not present, the default character mapping will be used.
|
|
.It Fl i Ar 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.
|
|
.It Fl l
|
|
Use little-endian byte order for output.
|
|
.It Fl u Ar codeset
|
|
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
|
|
.Sx NOTES .
|
|
.It Fl 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.
|
|
.It Fl v
|
|
Emit verbose debugging output on standard output.
|
|
.It Fl w Ar 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.
|
|
.It Fl V Ar version
|
|
Specifies a version string describing the version of the locale definition.
|
|
This string can be retrieved with
|
|
.Xr querylocale 3 ,
|
|
and is intended to allow applications to detect locale definition changes.
|
|
Currently it is stored only for the
|
|
.Sy LC_COLLATE
|
|
category.
|
|
.El
|
|
.Pp
|
|
The following operands are required:
|
|
.Bl -tag -width ".Ar localename"
|
|
.It Ar localename
|
|
Identifies the locale.
|
|
If the name contains one or more slash characters,
|
|
.Ar 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
|
|
.Ar localename ,
|
|
although several categories can be processed in one execution, only categories
|
|
belonging to the same locale can be processed.)
|
|
.El
|
|
.Sh OUTPUT
|
|
.Nm
|
|
creates a directory of files that represents the locale's data,
|
|
unless instructed otherwise by the
|
|
.Fl D (
|
|
BSD
|
|
output) option.
|
|
The contants of this directory should generally be copied into the
|
|
appropriate subdirectory of
|
|
.Pa /usr/share/locale
|
|
in order the definitions to be visible to programs linked with libc.
|
|
.Sh ENVIRONMENT
|
|
See
|
|
.Xr environ 7
|
|
for definitions of the following environment variables that affect the
|
|
execution of
|
|
.Nm :
|
|
.Ev LANG ,
|
|
.Ev LC_ALL ,
|
|
.Ev LC_COLLATE ,
|
|
.Ev LC_CTYPE ,
|
|
.Ev LC_MESSAGES ,
|
|
.Ev LC_MONETARY ,
|
|
.Ev LC_MUMERIC ,
|
|
.Ev LC_TIME ,
|
|
and
|
|
.Ev NLSPATH .
|
|
.Sh EXIT STATUS
|
|
The following exit values are returned:
|
|
.Bl -tag -width XX
|
|
.It 0
|
|
No errors occurred and the locales were successfully created.
|
|
.It 1
|
|
Warnings occurred and the locales were successfully created.
|
|
.It 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.
|
|
.It >3
|
|
Warnings or errors occurred and no output was created.
|
|
.El
|
|
.Pp
|
|
If an error is detected, no permanent output will be created.
|
|
.Sh SEE ALSO
|
|
.Xr locale 1 ,
|
|
.Xr iconv_open 3 ,
|
|
.Xr nl_langinfo 3 ,
|
|
.Xr querylocale 3 ,
|
|
.Xr strftime 3 ,
|
|
.Xr environ 7
|
|
.Sh WARNINGS
|
|
If warnings occur, permanent output will be created if the
|
|
.Fl c
|
|
option was specified.
|
|
The following conditions will cause warning messages to be issued:
|
|
.Bl -bullet
|
|
.It
|
|
If a symbolic name not found in the
|
|
.Pa charmap
|
|
file is used for the descriptions of the
|
|
.Sy LC_CTYPE
|
|
or
|
|
.Sy LC_COLLATE
|
|
categories (for other categories, this will be an error condition).
|
|
.It
|
|
If optional keywords not supported by the implementation are present in the
|
|
source.
|
|
.El
|
|
.Sh NOTES
|
|
When the
|
|
.Fl u
|
|
option is used, the
|
|
.Ar codeset
|
|
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
|
|
.Ar codeset
|
|
can be any codeset that is supported by the
|
|
.Fn iconv_open 3
|
|
function.
|
|
.Pp
|
|
When conflicts occur between the charmap specification of
|
|
.Ar codeset ,
|
|
.Em mb_cur_max ,
|
|
or
|
|
.Em mb_cur_min
|
|
and the corresponding value for the codeset represented by the
|
|
.Fl u
|
|
option-argument
|
|
.Ar codeset ,
|
|
the
|
|
.Nm
|
|
utility fails with an error.
|
|
.Pp
|
|
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.
|
|
.Sh HISTORY
|
|
.Nm
|
|
first appeared in
|
|
.Fx 11 .
|
|
.Pp
|
|
It was written by
|
|
.An Garrett D'Amore
|
|
.Aq Mt garrett@nexenta.com
|
|
for Illumos.
|
|
.An John Marino
|
|
.Aq Mt draco@marino.st
|
|
provided the alternations necessary to compile cleanly on
|
|
.Dx .
|
|
.An Baptiste Daroussin
|
|
.Aq Mt bapt@FreeBSD.org
|
|
ported it to
|
|
.Fx
|
|
and converted it to
|
|
.Xr tree 3 .
|