]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - usr.bin/localedef/localedef.1
THIS BRANCH IS OBSOLETE, PLEASE READ:
[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 .\" $FreeBSD$
35 .\"
36 .Dd November 8, 2020
37 .Dt LOCALEDEF 1
38 .Os
39 .Sh NAME
40 .Nm localedef
41 .Nd define locale environment
42 .Sh SYNOPSIS
43 .Nm
44 .Op Fl bcDlUv
45 .Op Fl f Ar charmap
46 .Op Fl i Ar sourcefile
47 .Op Fl u Ar codeset
48 .Op Fl w Ar widthfile
49 .Ar localename
50 .Sh DESCRIPTION
51 The
52 .Nm
53 utility converts source definitions for locale categories
54 into a format usable by the functions and utilities whose operational behavior
55 is determined by the setting of the locale environment variables; see
56 .Xr environ 7 .
57 .Pp
58 The utility reads source definitions for one or more locale categories
59 belonging to the same locale from the file named in the
60 .Fl i
61 option (if specified) or from standard input.
62 .Pp
63 Each category source definition is identified by the corresponding environment
64 variable name and terminated by an
65 .Sy END
66 .Em category-name
67 statement.
68 The following categories are supported:
69 .Bl -tag -width ".Ev LC_MONETARY"
70 .It Ev LC_CTYPE
71 Defines character classification and case conversion.
72 .It Ev LC_COLLATE
73 Defines collation rules.
74 .It Ev LC_MONETARY
75 Defines the format and symbols used in formatting of monetary information.
76 .It Ev LC_NUMERIC
77 Defines the decimal delimiter, grouping and grouping symbol for non-monetary
78 numeric editing.
79 .It Ev LC_TIME
80 Defines the format and content of date and time information.
81 .It Ev LC_MESSAGES
82 Defines the format and values of affirmative and negative responses.
83 .El
84 .Pp
85 The following options are supported:
86 .Bl -tag -width indent
87 .It Fl b
88 Use big-endian byte order for output.
89 .It Fl c
90 Creates permanent output even if warning messages have been issued.
91 .It Fl D
92 BSD-style
93 output.
94 Rather than the default of creating the
95 .Ar localename
96 directory and creating files like
97 .Pa LC_CTYPE ,
98 .Pa LC_COLLATE ,
99 etc.\& in that directory,
100 the output file names have the format
101 .Dq <localename>.<category>
102 and are dumped to the current directory.
103 .It Fl f Ar charmap
104 Specifies the pathname of a file containing a mapping of character symbols and
105 collating element symbols to actual character encodings.
106 This option must be specified if symbolic names (other than collating symbols
107 defined in a
108 .Sy collating-symbol
109 keyword) are used.
110 If the
111 .Fl f
112 option is not present, the default character mapping will be used.
113 .It Fl i Ar sourcefile
114 The path name of a file containing the source definitions.
115 If this option is not present, source definitions will be read from
116 standard input.
117 .It Fl l
118 Use little-endian byte order for output.
119 .It Fl u Ar codeset
120 Specifies the name of a codeset used as the target mapping of character symbols
121 and collating element symbols whose encoding values are defined in terms of the
122 ISO/IEC 10646-1:2000 standard position constant values.
123 See
124 .Sx NOTES .
125 .It Fl U
126 Ignore the presence of character symbols that have no matching character
127 definition.
128 This facilitates the use of a common locale definition file to be used across multiple
129 encodings, even when some symbols are not present in a given encoding.
130 .It Fl v
131 Emit verbose debugging output on standard output.
132 .It Fl w Ar widthfile
133 The path name of the file containing character screen width definitions.
134 If not supplied, then default screen widths will be assumed, which will
135 generally not account for East Asian encodings requiring more than a single
136 character cell to display, nor for combining or accent marks that occupy
137 no additional screen width.
138 .It Fl V Ar version
139 Specifies a version string describing the version of the locale definition.
140 This string can be retrieved with
141 .Xr querylocale 3 ,
142 and is intended to allow applications to detect locale definition changes.
143 Currently it is stored only for the
144 .Sy LC_COLLATE
145 category.
146 .El
147 .Pp
148 The following operands are required:
149 .Bl -tag -width ".Ar localename"
150 .It Ar localename
151 Identifies the locale.
152 If the name contains one or more slash characters,
153 .Ar localename
154 will be interpreted as a path name where the created locale
155 definitions will be stored.
156 This capability may be restricted to users with appropriate privileges.
157 (As a consequence of specifying one
158 .Ar localename ,
159 although several categories can be processed in one execution, only categories
160 belonging to the same locale can be processed.)
161 .El
162 .Sh OUTPUT
163 .Nm
164 creates a directory of files that represents the locale's data,
165 unless instructed otherwise by the
166 .Fl D (
167 BSD
168 output) option.
169 The contants of this directory should generally be copied into the
170 appropriate subdirectory of
171 .Pa /usr/share/locale
172 in order the definitions to be visible to programs linked with libc.
173 .Sh ENVIRONMENT
174 See
175 .Xr environ 7
176 for definitions of the following environment variables that affect the
177 execution of
178 .Nm :
179 .Ev LANG ,
180 .Ev LC_ALL ,
181 .Ev LC_COLLATE ,
182 .Ev LC_CTYPE ,
183 .Ev LC_MESSAGES ,
184 .Ev LC_MONETARY ,
185 .Ev LC_MUMERIC ,
186 .Ev LC_TIME ,
187 and
188 .Ev NLSPATH .
189 .Sh EXIT STATUS
190 The following exit values are returned:
191 .Bl -tag -width XX
192 .It 0
193 No errors occurred and the locales were successfully created.
194 .It 1
195 Warnings occurred and the locales were successfully created.
196 .It 2
197 The locale specification exceeded implementation limits or the coded character
198 set or sets used were not supported by the implementation, and no locale was
199 created.
200 .It >3
201 Warnings or errors occurred and no output was created.
202 .El
203 .Pp
204 If an error is detected, no permanent output will be created.
205 .Sh SEE ALSO
206 .Xr locale 1 ,
207 .Xr iconv_open 3 ,
208 .Xr nl_langinfo 3 ,
209 .Xr querylocale 3 ,
210 .Xr strftime 3 ,
211 .Xr environ 7
212 .Sh WARNINGS
213 If warnings occur, permanent output will be created if the
214 .Fl c
215 option was specified.
216 The following conditions will cause warning messages to be issued:
217 .Bl -bullet
218 .It
219 If a symbolic name not found in the
220 .Pa charmap
221 file is used for the descriptions of the
222 .Sy LC_CTYPE
223 or
224 .Sy LC_COLLATE
225 categories (for other categories, this will be an error condition).
226 .It
227 If optional keywords not supported by the implementation are present in the
228 source.
229 .El
230 .Sh NOTES
231 When the
232 .Fl u
233 option is used, the
234 .Ar codeset
235 option-argument is interpreted as a name of a codeset to which the
236 ISO/IEC 10646-1:2000 standard position constant values are converted.
237 Both the ISO/IEC 10646-1:2000 standard position constant values and
238 other formats (decimal, hexadecimal, or octal) are valid as encoding
239 values within the charmap file.
240 The
241 .Ar codeset
242 can be any codeset that is supported by the
243 .Fn iconv_open 3
244 function.
245 .Pp
246 When conflicts occur between the charmap specification of
247 .Ar codeset ,
248 .Em mb_cur_max ,
249 or
250 .Em mb_cur_min
251 and the corresponding value for the codeset represented by the
252 .Fl u
253 option-argument
254 .Ar codeset ,
255 the
256 .Nm
257 utility fails with an error.
258 .Pp
259 When conflicts occur between the charmap encoding values specified for symbolic
260 names of characters of the portable character set and the character encoding
261 values defined by the US-ASCII, the result is unspecified.
262 .Sh HISTORY
263 .Nm
264 first appeared in
265 .Fx 11 .
266 .Pp
267 It was written by
268 .An Garrett D'Amore
269 .Aq Mt garrett@nexenta.com
270 for Illumos.
271 .An John Marino
272 .Aq Mt draco@marino.st
273 provided the alternations necessary to compile cleanly on
274 .Dx .
275 .An Baptiste Daroussin
276 .Aq Mt bapt@FreeBSD.org
277 ported it to
278 .Fx
279 and converted it to
280 .Xr tree 3 .