]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - usr.bin/localedef/localedef.1
zfs: merge openzfs/zfs@804414aad
[FreeBSD/FreeBSD.git] / usr.bin / localedef / localedef.1
1 .\" Copyright (c) 1992, X/Open Company Limited  All Rights Reserved
2 .\" Portions Copyright (c) 2003, Sun Microsystems, Inc.  All Rights Reserved
3 .\" Portions Copyright 2013 DEY Storage Systems, Inc.
4 .\" Sun Microsystems, Inc. gratefully acknowledges The Open Group for
5 .\" permission to reproduce portions of its copyrighted documentation.
6 .\" Original documentation from The Open Group can be obtained online at
7 .\" http://www.opengroup.org/bookstore/.
8 .\" The Institute of Electrical and Electronics Engineers and The Open Group,
9 .\" have given us permission to reprint portions of their documentation. In
10 .\" the following statement, the phrase "this text" refers to portions of the
11 .\" system documentation. Portions of this text are reprinted and reproduced
12 .\" in electronic form in the Sun OS Reference Manual, from IEEE Std 1003.1,
13 .\" 2004 Edition, Standard for Information Technology -- Portable Operating
14 .\" System Interface (POSIX), The Open Group Base Specifications Issue 6,
15 .\" Copyright (C) 2001-2004 by the Institute of Electrical and Electronics
16 .\" Engineers, Inc and The Open Group. In the event of any discrepancy between
17 .\" these versions and the original IEEE and The Open Group Standard, the
18 .\" original IEEE and The Open Group Standard is the referee document. The
19 .\" original Standard can be obtained online at
20 .\" http://www.opengroup.org/unix/online.html.
21 .\"  This notice shall appear on any product containing this material.
22 .\" The contents of this file are subject to the terms of the Common
23 .\" Development and Distribution License (the "License").  You may not use
24 .\" this file except in compliance with the License.
25 .\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or
26 .\" http://www.opensolaris.org/os/licensing.  See the License for the specific
27 .\" language governing permissions and limitations under the License.
28 .\" When distributing Covered Code, include this CDDL HEADER in each file and
29 .\" include the License file at usr/src/OPENSOLARIS.LICENSE.  If applicable,
30 .\" add the following below this CDDL HEADER, with the fields enclosed by
31 .\" brackets "[]" replaced with your own identifying information:
32 .\" Portions Copyright [yyyy] [name of copyright owner]
33 .\"
34 .Dd June 29, 2023
35 .Dt LOCALEDEF 1
36 .Os
37 .Sh NAME
38 .Nm localedef
39 .Nd define locale environment
40 .Sh SYNOPSIS
41 .Nm
42 .Op Fl bcDlUv
43 .Op Fl f Ar charmap
44 .Op Fl i Ar sourcefile
45 .Op Fl u Ar codeset
46 .Op Fl w Ar widthfile
47 .Ar localename
48 .Sh DESCRIPTION
49 The
50 .Nm
51 utility converts source definitions for locale categories
52 into a format usable by the functions and utilities whose operational behavior
53 is determined by the setting of the locale environment variables; see
54 .Xr environ 7 .
55 .Pp
56 The utility reads source definitions for one or more locale categories
57 belonging to the same locale from the file named in the
58 .Fl i
59 option (if specified) or from standard input.
60 .Pp
61 Each category source definition is identified by the corresponding environment
62 variable name and terminated by an
63 .Sy END
64 .Em category-name
65 statement.
66 The following categories are supported:
67 .Bl -tag -width ".Ev LC_MONETARY"
68 .It Ev LC_CTYPE
69 Defines character classification and case conversion.
70 .It Ev LC_COLLATE
71 Defines collation rules.
72 .It Ev LC_MONETARY
73 Defines the format and symbols used in formatting of monetary information.
74 .It Ev LC_NUMERIC
75 Defines the decimal delimiter, grouping and grouping symbol for non-monetary
76 numeric editing.
77 .It Ev LC_TIME
78 Defines the format and content of date and time information.
79 .It Ev LC_MESSAGES
80 Defines the format and values of affirmative and negative responses.
81 .El
82 .Pp
83 The following options are supported:
84 .Bl -tag -width indent
85 .It Fl b
86 Use big-endian byte order for output.
87 .It Fl c
88 Creates permanent output even if warning messages have been issued.
89 .It Fl D
90 BSD-style
91 output.
92 Rather than the default of creating the
93 .Ar localename
94 directory and creating files like
95 .Pa LC_CTYPE ,
96 .Pa LC_COLLATE ,
97 etc.\& in that directory,
98 the output file names have the format
99 .Dq <localename>.<category>
100 and are dumped to the current directory.
101 .It Fl f Ar charmap
102 Specifies the pathname of a file containing a mapping of character symbols and
103 collating element symbols to actual character encodings.
104 This option must be specified if symbolic names (other than collating symbols
105 defined in a
106 .Sy collating-symbol
107 keyword) are used.
108 If the
109 .Fl f
110 option is not present, the default character mapping will be used.
111 .It Fl i Ar sourcefile
112 The path name of a file containing the source definitions.
113 If this option is not present, source definitions will be read from
114 standard input.
115 .It Fl l
116 Use little-endian byte order for output.
117 .It Fl u Ar codeset
118 Specifies the name of a codeset used as the target mapping of character symbols
119 and collating element symbols whose encoding values are defined in terms of the
120 ISO/IEC 10646-1:2000 standard position constant values.
121 See
122 .Sx NOTES .
123 .It Fl U
124 Ignore the presence of character symbols that have no matching character
125 definition.
126 This facilitates the use of a common locale definition file to be used across multiple
127 encodings, even when some symbols are not present in a given encoding.
128 .It Fl v
129 Emit verbose debugging output on standard output.
130 .It Fl w Ar widthfile
131 The path name of the file containing character screen width definitions.
132 If not supplied, then default screen widths will be assumed, which will
133 generally not account for East Asian encodings requiring more than a single
134 character cell to display, nor for combining or accent marks that occupy
135 no additional screen width.
136 .It Fl V Ar version
137 Specifies a version string describing the version of the locale definition.
138 This string can be retrieved with
139 .Xr querylocale 3 ,
140 and is intended to allow applications to detect locale definition changes.
141 Currently it is stored only for the
142 .Sy LC_COLLATE
143 category.
144 .El
145 .Pp
146 The following operands are required:
147 .Bl -tag -width ".Ar localename"
148 .It Ar localename
149 Identifies the locale.
150 If the name contains one or more slash characters,
151 .Ar localename
152 will be interpreted as a path name where the created locale
153 definitions will be stored.
154 This capability may be restricted to users with appropriate privileges.
155 (As a consequence of specifying one
156 .Ar localename ,
157 although several categories can be processed in one execution, only categories
158 belonging to the same locale can be processed.)
159 .El
160 .Sh OUTPUT
161 .Nm
162 creates a directory of files that represents the locale's data,
163 unless instructed otherwise by the
164 .Fl D (
165 BSD
166 output) option.
167 The contants of this directory should generally be copied into the
168 appropriate subdirectory of
169 .Pa /usr/share/locale
170 in order the definitions to be visible to programs linked with libc.
171 .Sh ENVIRONMENT
172 See
173 .Xr environ 7
174 for definitions of the following environment variables that affect the
175 execution of
176 .Nm :
177 .Ev LANG ,
178 .Ev LC_ALL ,
179 .Ev LC_COLLATE ,
180 .Ev LC_CTYPE ,
181 .Ev LC_MESSAGES ,
182 .Ev LC_MONETARY ,
183 .Ev LC_MUMERIC ,
184 .Ev LC_TIME ,
185 and
186 .Ev NLSPATH .
187 .Sh EXIT STATUS
188 The following exit values are returned:
189 .Bl -tag -width XX
190 .It 0
191 No errors occurred and the locales were successfully created.
192 .It 1
193 Warnings occurred and the locales were successfully created.
194 .It 2
195 The locale specification exceeded implementation limits or the coded character
196 set or sets used were not supported by the implementation, and no locale was
197 created.
198 .It >3
199 Warnings or errors occurred and no output was created.
200 .El
201 .Pp
202 If an error is detected, no permanent output will be created.
203 .Sh SEE ALSO
204 .Xr locale 1 ,
205 .Xr iconv_open 3 ,
206 .Xr nl_langinfo 3 ,
207 .Xr querylocale 3 ,
208 .Xr strftime 3 ,
209 .Xr environ 7
210 .Sh WARNINGS
211 If warnings occur, permanent output will be created if the
212 .Fl c
213 option was specified.
214 The following conditions will cause warning messages to be issued:
215 .Bl -bullet
216 .It
217 If a symbolic name not found in the
218 .Pa charmap
219 file is used for the descriptions of the
220 .Sy LC_CTYPE
221 or
222 .Sy LC_COLLATE
223 categories (for other categories, this will be an error condition).
224 .It
225 If optional keywords not supported by the implementation are present in the
226 source.
227 .El
228 .Sh NOTES
229 When the
230 .Fl u
231 option is used, the
232 .Ar codeset
233 option-argument is interpreted as a name of a codeset to which the
234 ISO/IEC 10646-1:2000 standard position constant values are converted.
235 Both the ISO/IEC 10646-1:2000 standard position constant values and
236 other formats (decimal, hexadecimal, or octal) are valid as encoding
237 values within the charmap file.
238 The
239 .Ar codeset
240 can be any codeset that is supported by the
241 .Fn iconv_open 3
242 function.
243 .Pp
244 When conflicts occur between the charmap specification of
245 .Ar codeset ,
246 .Em mb_cur_max ,
247 or
248 .Em mb_cur_min
249 and the corresponding value for the codeset represented by the
250 .Fl u
251 option-argument
252 .Ar codeset ,
253 the
254 .Nm
255 utility fails with an error.
256 .Pp
257 When conflicts occur between the charmap encoding values specified for symbolic
258 names of characters of the portable character set and the character encoding
259 values defined by the US-ASCII, the result is unspecified.
260 .Sh HISTORY
261 .Nm
262 first appeared in
263 .Fx 11 .
264 .Pp
265 It was written by
266 .An Garrett D'Amore
267 .Aq Mt garrett@nexenta.com
268 for illumos.
269 .An John Marino
270 .Aq Mt draco@marino.st
271 provided the alternations necessary to compile cleanly on
272 .Dx .
273 .An Baptiste Daroussin
274 .Aq Mt bapt@FreeBSD.org
275 ported it to
276 .Fx
277 and converted it to
278 .Xr tree 3 .