1 .\"
2 .\" Sun Microsystems, Inc. gratefully acknowledges The Open Group for
3 .\" permission to reproduce portions of its copyrighted documentation.
4 .\" Original documentation from The Open Group can be obtained online at
5 .\" http://www.opengroup.org/bookstore/.
6 .\"
7 .\" The Institute of Electrical and Electronics Engineers and The Open
8 .\" Group, have given us permission to reprint portions of their
9 .\" documentation.
10 .\"
11 .\" In the following statement, the phrase ``this text'' refers to portions
12 .\" of the system documentation.
13 .\"
14 .\" Portions of this text are reprinted and reproduced in electronic form
15 .\" in the SunOS Reference Manual, from IEEE Std 1003.1, 2004 Edition,
16 .\" Standard for Information Technology -- Portable Operating System
17 .\" Interface (POSIX), The Open Group Base Specifications Issue 6,
18 .\" Copyright (C) 2001-2004 by the Institute of Electrical and Electronics
19 .\" Engineers, Inc and The Open Group. In the event of any discrepancy
20 .\" between these versions and the original IEEE and The Open Group
21 .\" Standard, the original IEEE and The Open Group Standard is the referee
22 .\" document. The original Standard can be obtained online at
23 .\" http://www.opengroup.org/unix/online.html.
24 .\"
25 .\" This notice shall appear on any product containing this material.
26 .\"
27 .\" The contents of this file are subject to the terms of the
28 .\" Common Development and Distribution License (the "License").
29 .\" You may not use this file except in compliance with the License.
30 .\"
31 .\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
32 .\" or http://www.opensolaris.org/os/licensing.
33 .\" See the License for the specific language governing permissions
34 .\" and limitations under the License.
35 .\"
36 .\" When distributing Covered Code, include this CDDL HEADER in each
37 .\" file and include the License file at usr/src/OPENSOLARIS.LICENSE.
38 .\" If applicable, add the following below this CDDL HEADER, with the
39 .\" fields enclosed by brackets "[]" replaced with your own identifying
40 .\" information: Portions Copyright [yyyy] [name of copyright owner]
41 .\"
42 .\"
43 .\" Copyright (c) 1992, X/Open Company Limited. All Rights Reserved.
44 .\" Portions Copyright (c) 2003, Sun Microsystems, Inc. All Rights Reserved.
45 .\"
46 .TH LOCALE 5 "April 9, 2016"
47 .SH NAME
48 locale \- subset of a user's environment that depends on language and cultural
49 conventions
50 .SH DESCRIPTION
51 .LP
52 A \fBlocale\fR is the definition of the subset of a user's environment that
53 depends on language and cultural conventions. It is made up from one or more
54 categories. Each category is identified by its name and controls specific
55 aspects of the behavior of components of the system. Category names correspond
56 to the following environment variable names:
57 .sp
58 .ne 2
59 .na
60 \fB\fBLC_CTYPE\fR\fR
61 .ad
62 .RS 15n
63 Character classification and case conversion.
64 .RE
65
66 .sp
67 .ne 2
68 .na
69 \fB\fBLC_COLLATE\fR\fR
70 .ad
71 .RS 15n
72 Collation order.
73 .RE
74
75 .sp
76 .ne 2
77 .na
78 \fB\fBLC_TIME\fR\fR
79 .ad
80 .RS 15n
81 Date and time formats.
82 .RE
83
84 .sp
85 .ne 2
86 .na
87 \fB\fBLC_NUMERIC\fR\fR
88 .ad
89 .RS 15n
90 Numeric formatting.
91 .RE
92
93 .sp
94 .ne 2
95 .na
96 \fB\fBLC_MONETARY\fR\fR
97 .ad
98 .RS 15n
99 Monetary formatting.
100 .RE
101
102 .sp
103 .ne 2
104 .na
105 \fB\fBLC_MESSAGES\fR\fR
106 .ad
107 .RS 15n
108 Formats of informative and diagnostic messages and interactive responses.
109 .RE
110
111 .sp
112 .LP
113 The standard utilities base their behavior on the current locale, as defined
114 in the ENVIRONMENT VARIABLES section for each utility. The behavior of some of
115 the C-language functions will also be modified based on the current locale, as
116 defined by the last call to \fBsetlocale\fR(3C).
117 .sp
118 .LP
119 Locales other than those supplied by the implementation can be created by the
120 application via the \fBlocaledef\fR(1) utility. The value that is used to
121 specify a locale when using environment variables will be the string specified
122 as the \fIname\fR operand to \fBlocaledef\fR when the locale was created. The
123 strings "C" and "POSIX" are reserved as identifiers for the POSIX locale.
124 .sp
125 .LP
126 Applications can select the desired locale by invoking the \fBsetlocale()\fR
127 function with the appropriate value. If the function is invoked with an empty
128 string, such as:
129 .sp
130 .in +2
131 .nf
132 setlocale(LC_ALL, "");
133 .fi
134 .in -2
135
136 .sp
137 .LP
138 the value of the corresponding environment variable is used. If the environment
139 variable is unset or is set to the empty string, the \fBsetlocale()\fR
140 function sets the appropriate environment.
141 .SS "Locale Definition"
142 .LP
143 Locales can be described with the file format accepted by the \fBlocaledef\fR
144 utility.
145 .sp
146 .LP
147 The locale definition file must contain one or more locale category source
148 definitions, and must not contain more than one definition for the same locale
149 category.
150 .sp
151 .LP
152 A category source definition consists of a category header, a category body and
153 a category trailer. A category header consists of the character string naming
154 of the category, beginning with the characters \fBLC_\fR. The category trailer
155 consists of the string \fBEND\fR, followed by one or more blank characters and
156 the string used in the corresponding category header.
157 .sp
158 .LP
159 The category body consists of one or more lines of text. Each line contains an
160 identifier, optionally followed by one or more operands. Identifiers are either
161 keywords, identifying a particular locale element, or collating elements. Each
162 keyword within a locale must have a unique name (that is, two categories cannot
163 have a commonly-named keyword). No keyword can start with the characters
164 \fBLC_\fR. Identifiers must be separated from the operands by one or more blank
165 characters.
166 .sp
167 .LP
168 Operands must be characters, collating elements, or strings of characters.
169 Strings must be enclosed in double-quotes (\fB"\fR). Literal double-quotes
170 within strings must be preceded by the <\fIescape character\fR>, as described
171 below. When a keyword is followed by more than one operand, the operands must
172 be separated by semicolons (\fB;\fR). Blank characters are allowed both before
173 and after a semicolon.
174 .sp
175 .LP
176 The first category header in the file can be preceded by a line modifying the
177 comment character. It has the following format, starting in column 1:
178 .sp
179 .in +2
180 .nf
181 "comment_char %c\en",<\fIcomment character\fR>
182 .fi
183 .in -2
184
185 .sp
186 .LP
187 The comment character defaults to the number sign (\fB#\fR). Blank lines and
188 lines containing the <\fIcomment character\fR> in the first position are
189 ignored.
190 .sp
191 .LP
192 The first category header in the file can be preceded by a line modifying the
193 escape character to be used in the file. It has the following format, starting
194 in column 1:
195 .sp
196 .in +2
197 .nf
198 "escape_char %c\en",<\fIescape character\fR>
199 .fi
200 .in -2
201 .sp
202
203 .sp
204 .LP
205 The escape character defaults to backslash.
206 .sp
207 .LP
208 A line can be continued by placing an escape character as the last character on
209 the line; this continuation character will be discarded from the input.
210 Although the implementation need not accept any one portion of a continued line
211 with a length exceeding \fB{LINE_MAX}\fR bytes, it places no limits on the
212 accumulated length of the continued line. Comment lines cannot be continued on
213 a subsequent line using an escaped newline character.
214 .sp
215 .LP
216 Individual characters, characters in strings, and collating elements must be
217 represented using symbolic names, as defined below. In addition, characters can
218 be represented using the characters themselves or as octal, hexadecimal or
219 decimal constants. When non-symbolic notation is used, the resultant locale
220 definitions will in many cases not be portable between systems. The left angle
221 bracket (\fB<\fR) is a reserved symbol, denoting the start of a symbolic name;
222 when used to represent itself it must be preceded by the escape character. The
223 following rules apply to character representation:
224 .RS +4
225 .TP
226 1.
227 A character can be represented via a symbolic name, enclosed within angle
228 brackets \fB<\fR and \fB>\fR. The symbolic name, including the angle brackets,
229 must exactly match a symbolic name defined in the charmap file specified via
230 the \fBlocaledef\fR \fB-f\fR option, and will be replaced by a character value
231 determined from the value associated with the symbolic name in the charmap
232 file. The use of a symbolic name not found in the charmap file constitutes an
233 error, unless the category is \fBLC_CTYPE\fR or \fBLC_COLLATE\fR, in which
234 case it constitutes a warning condition (see \fBlocaledef\fR(1) for a
235 description of action resulting from errors and warnings). The specification of
236 a symbolic name in a \fBcollating-element\fR or \fBcollating-symbol\fR section
237 that duplicates a symbolic name in the charmap file (if present) is an error.
238 Use of the escape character or a right angle bracket within a symbolic name is
239 invalid unless the character is preceded by the escape character.
240 .sp
241 Example:
242 .sp
243 .in +2
244 .nf
245 <C>;<c-cedilla> "<M><a><y>"
246 .fi
247 .in -2
248 .sp
249
250 .RE
251 .RS +4
252 .TP
253 2.
254 A character can be represented by the character itself, in which case the
255 value of the character is implementation-dependent. Within a string, the
256 double-quote character, the escape character and the right angle bracket
257 character must be escaped (preceded by the escape character) to be interpreted
258 as the character itself. Outside strings, the characters
259 .sp
260 .in +2
261 .nf
262 \fB, ; < >\fR \fIescape_char\fR
263 .fi
264 .in -2
265 .sp
266
267 must be escaped to be interpreted as the character itself.
268 .sp
269 Example:
270 .sp
271 .in +2
272 .nf
273 c "May"
274 .fi
275 .in -2
276 .sp
277
278 .RE
279 .RS +4
280 .TP
281 3.
282 A character can be represented as an octal constant. An octal constant is
283 specified as the escape character followed by two or more octal digits. Each
284 constant represents a byte value. Multi-byte values can be represented by
285 concatenated constants specified in byte order with the last constant
286 specifying the least significant byte of the character.
287 .sp
288 Example:
289 .sp
290 .in +2
291 .nf
292 \e143;\e347;\e143\e150 "\e115\e141\e171"
293 .fi
294 .in -2
295 .sp
296
297 .RE
298 .RS +4
299 .TP
300 4.
301 A character can be represented as a hexadecimal constant. A hexadecimal
302 constant is specified as the escape character followed by an \fBx\fR followed
303 by two or more hexadecimal digits. Each constant represents a byte value.
304 Multi-byte values can be represented by concatenated constants specified in
305 byte order with the last constant specifying the least significant byte of the
306 character.
307 .sp
308 Example:
309 .sp
310 .in +2
311 .nf
312 \ex63;\exe7;\ex63\ex68 "\ex4d\ex61\ex79"
313 .fi
314 .in -2
315 .sp
316
317 .RE
318 .RS +4
319 .TP
320 5.
321 A character can be represented as a decimal constant. A decimal constant is
322 specified as the escape character followed by a \fBd\fR followed by two or more
323 decimal digits. Each constant represents a byte value. Multi-byte values can be
324 represented by concatenated constants specified in byte order with the last
325 constant specifying the least significant byte of the character.
326 .sp
327 Example:
328 .sp
329 .in +2
330 .nf
331 \ed99;\ed231;\ed99\ed104 "\ed77\ed97\ed121"
332 .fi
333 .in -2
334 .sp
335
336 Only characters existing in the character set for which the locale definition
337 is created can be specified, whether using symbolic names, the characters
338 themselves, or octal, decimal or hexadecimal constants. If a charmap file is
339 present, only characters defined in the charmap can be specified using octal,
340 decimal or hexadecimal constants. Symbolic names not present in the charmap
341 file can be specified and will be ignored, as specified under item 1 above.
342 .RE
343 .SS "LC_CTYPE"
344 .LP
345 The \fBLC_CTYPE\fR category defines character classification, case conversion
346 and other character attributes. In addition, a series of characters can be
347 represented by three adjacent periods representing an ellipsis symbol
348 (\fB\&...\fR). The ellipsis specification is interpreted as meaning that all
349 values between the values preceding and following it represent valid
350 characters. The ellipsis specification is valid only within a single encoded
351 character set, that is, within a group of characters of the same size. An
352 ellipsis is interpreted as including in the list all characters with an encoded
353 value higher than the encoded value of the character preceding the ellipsis and
354 lower than the encoded value of the character following the ellipsis.
355 .sp
356 .LP
357 Example:
358 .sp
359 .in +2
360 .nf
361 \ex30;...;\ex39;
362 .fi
363 .in -2
364 .sp
365
366 .sp
367 .LP
368 includes in the character class all characters with encoded values between the
369 endpoints.
370 .sp
371 .LP
372 The following keywords are recognized. In the descriptions, the term
373 ``automatically included'' means that it is not an error either to include or
374 omit any of the referenced characters.
375 .sp
376 .LP
377 The character classes \fBdigit\fR, \fBxdigit\fR, \fBlower\fR, \fBupper\fR, and
378 \fBspace\fR have a set of automatically included characters. These only need to
379 be specified if the character values (that is, encoding) differ from the
380 implementation default values.
381 .sp
382 .ne 2
383 .na
384 \fB\fBupper\fR\fR
385 .ad
386 .RS 18n
387 Define characters to be classified as upper-case letters.
388 .sp
389 In the POSIX locale, the 26 upper-case letters are included:
390 .sp
391 .in +2
392 .nf
393 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
394 .fi
395 .in -2
396 .sp
397
398 In a locale definition file, no character specified for the keywords
399 \fBcntrl\fR, \fBdigit\fR, \fBpunct\fR, or \fBspace\fR can be specified. The
400 upper-case letters \fBA\fR to \fBZ\fR are automatically included in this class.
401 .RE
402
403 .sp
404 .ne 2
405 .na
406 \fB\fBlower\fR\fR
407 .ad
408 .RS 18n
409 Define characters to be classified as lower-case letters. In the POSIX locale,
410 the 26 lower-case letters are included:
411 .sp
412 .in +2
413 .nf
414 a b c d e f g h i j k l m n o p q r s t u v w x y z
415 .fi
416 .in -2
417 .sp
418
419 In a locale definition file, no character specified for the keywords
420 \fBcntrl\fR, \fBdigit\fR, \fBpunct\fR, or \fBspace\fR can be specified. The
421 lower-case letters \fBa\fR to \fBz\fR of the portable character set are
422 automatically included in this class.
423 .RE
424
425 .sp
426 .ne 2
427 .na
428 \fB\fBalpha\fR\fR
429 .ad
430 .RS 18n
431 Define characters to be classified as letters.
432 .sp
433 In the POSIX locale, all characters in the classes \fBupper\fR and \fBlower\fR
434 are included.
435 .sp
436 In a locale definition file, no character specified for the keywords
437 \fBcntrl\fR, \fBdigit\fR, \fBpunct\fR, or \fBspace\fR can be specified.
438 Characters classified as either \fBupper\fR or \fBlower\fR are automatically
439 included in this class.
440 .RE
441
442 .sp
443 .ne 2
444 .na
445 \fB\fBdigit\fR\fR
446 .ad
447 .RS 18n
448 Define the characters to be classified as numeric digits.
449 .sp
450 In the POSIX locale, only
451 .sp
452 .in +2
453 .nf
454 0 1 2 3 4 5 6 7 8 9
455 .fi
456 .in -2
457 .sp
458
459 are included.
460 .sp
461 In a locale definition file, only the digits \fB0\fR, \fB1\fR, \fB2\fR,
462 \fB3\fR, \fB4\fR, \fB5\fR, \fB6\fR, \fB7\fR, \fB8\fR, and \fB9\fR can be
463 specified, and in contiguous ascending sequence by numerical value. The digits
464 \fB0\fR to \fB9\fR of the portable character set are automatically included in
465 this class.
466 .sp
467 The definition of character class \fBdigit\fR requires that only ten
468 characters; the ones defining digits can be specified; alternative digits (for
469 example, Hindi or Kanji) cannot be specified here.
470 .RE
471
472 .sp
473 .ne 2
474 .na
475 \fB\fBalnum\fR\fR
476 .ad
477 .RS 18n
478 Define characters to be classified as letters and numeric digits. Only the
479 characters specified for the \fBalpha\fR and \fBdigit\fR keywords are
480 specified. Characters specified for the keywords \fBalpha\fR and \fBdigit\fR
481 are automatically included in this class.
482 .RE
483
484 .sp
485 .ne 2
486 .na
487 \fB\fBspace\fR\fR
488 .ad
489 .RS 18n
490 Define characters to be classified as white-space characters.
491 .sp
492 In the POSIX locale, at a minimum, the characters \fBSPACE\fR, \fBFORMFEED\fR,
493 \fBNEWLINE\fR, \fBCARRIAGE RETURN\fR, \fBTAB\fR, and \fBVERTICAL TAB\fR are
494 included.
495 .sp
496 In a locale definition file, no character specified for the keywords
497 \fBupper\fR, \fBlower\fR, \fBalpha\fR, \fBdigit\fR, \fBgraph\fR, or
498 \fBxdigit\fR can be specified. The characters \fBSPACE\fR, \fBFORMFEED\fR,
499 \fBNEWLINE\fR, \fBCARRIAGE RETURN\fR, \fBTAB\fR, and \fBVERTICAL TAB\fR of the
500 portable character set, and any characters included in the class \fBblank\fR
501 are automatically included in this class.
502 .RE
503
504 .sp
505 .ne 2
506 .na
507 \fB\fBcntrl\fR\fR
508 .ad
509 .RS 18n
510 Define characters to be classified as control characters.
511 .sp
512 In the POSIX locale, no characters in classes \fBalpha\fR or \fBprint\fR are
513 included.
514 .sp
515 In a locale definition file, no character specified for the keywords
516 \fBupper\fR, \fBlower\fR, \fBalpha\fR, \fBdigit\fR, \fBpunct\fR, \fBgraph\fR,
517 \fBprint\fR, or \fBxdigit\fR can be specified.
518 .RE
519
520 .sp
521 .ne 2
522 .na
523 \fB\fBpunct\fR\fR
524 .ad
525 .RS 18n
526 Define characters to be classified as punctuation characters.
527 .sp
528 In the POSIX locale, neither the space character nor any characters in classes
529 \fBalpha\fR, \fBdigit\fR, or \fBcntrl\fR are included.
530 .sp
531 In a locale definition file, no character specified for the keywords
532 \fBupper\fR, \fBlower\fR, \fBalpha\fR, \fBdigit\fR, \fBcntrl\fR, \fBxdigit\fR
533 or as the space character can be specified.
534 .RE
535
536 .sp
537 .ne 2
538 .na
539 \fB\fBgraph\fR\fR
540 .ad
541 .RS 18n
542 Define characters to be classified as printable characters, not including the
543 space character.
544 .sp
545 In the POSIX locale, all characters in classes \fBalpha\fR, \fBdigit\fR, and
546 \fBpunct\fR are included; no characters in class \fBcntrl\fR are included.
547 .sp
548 In a locale definition file, characters specified for the keywords \fBupper\fR,
549 \fBlower\fR, \fBalpha\fR, \fBdigit\fR, \fBxdigit\fR, and \fBpunct\fR are
550 automatically included in this class. No character specified for the keyword
551 \fBcntrl\fR can be specified.
552 .RE
553
554 .sp
555 .ne 2
556 .na
557 \fB\fBprint\fR\fR
558 .ad
559 .RS 18n
560 Define characters to be classified as printable characters, including the space
561 character.
562 .sp
563 In the POSIX locale, all characters in class \fBgraph\fR are included; no
564 characters in class \fBcntrl\fR are included.
565 .sp
566 In a locale definition file, characters specified for the keywords \fBupper\fR,
567 \fBlower\fR, \fBalpha\fR, \fBdigit\fR, \fBxdigit\fR, \fBpunct\fR, and the space
568 character are automatically included in this class. No character specified for
569 the keyword \fBcntrl\fR can be specified.
570 .RE
571
572 .sp
573 .ne 2
574 .na
575 \fB\fBxdigit\fR\fR
576 .ad
577 .RS 18n
578 Define the characters to be classified as hexadecimal digits.
579 .sp
580 In the POSIX locale, only:
581 .sp
582 .in +2
583 .nf
584 0 1 2 3 4 5 6 7 8 9 A B C D E F a b c d e f
585 .fi
586 .in -2
587 .sp
588
589 are included.
590 .sp
591 In a locale definition file, only the characters defined for the class
592 \fBdigit\fR can be specified, in contiguous ascending sequence by numerical
593 value, followed by one or more sets of six characters representing the
594 hexadecimal digits 10 to 15 inclusive, with each set in ascending order (for
595 example \fBA\fR, \fBB\fR, \fBC\fR, \fBD\fR, \fBE\fR, \fBF\fR, \fBa\fR, \fBb\fR,
596 \fBc\fR, \fBd\fR, \fBe\fR, \fBf\fR). The digits \fB0\fR to \fB9\fR, the
597 upper-case letters \fBA\fR to \fBF\fR and the lower-case letters \fBa\fR to
598 \fBf\fR of the portable character set are automatically included in this class.
599 .sp
600 The definition of character class \fBxdigit\fR requires that the characters
601 included in character class \fBdigit\fR be included here also.
602 .RE
603
604 .sp
605 .ne 2
606 .na
607 \fB\fBblank\fR\fR
608 .ad
609 .RS 18n
610 Define characters to be classified as blank characters.
611 .sp
612 In the POSIX locale, only the space and tab characters are included.
613 .sp
614 In a locale definition file, the characters space and tab are automatically
615 included in this class.
616 .RE
617
618 .sp
619 .ne 2
620 .na
621 \fB\fBcharclass\fR\fR
622 .ad
623 .RS 18n
624 Define one or more locale-specific character class names as strings separated
625 by semi-colons. Each named character class can then be defined subsequently in
626 the \fBLC_CTYPE\fR definition. A character class name consists of at least one
627 and at most \fB{CHARCLASS_NAME_MAX}\fR bytes of alphanumeric characters from
628 the portable filename character set. The first character of a character class
629 name cannot be a digit. The name cannot match any of the \fBLC_CTYPE\fR
630 keywords defined in this document.
631 .RE
632
633 .sp
634 .ne 2
635 .na
636 \fB\fBcharclass-name\fR\fR
637 .ad
638 .RS 18n
639 Define characters to be classified as belonging to the named locale-specific
640 character class. In the POSIX locale, the locale-specific named character
641 classes need not exist. If a class name is defined by a \fBcharclass\fR
642 keyword, but no characters are subsequently assigned to it, this is not an
643 error; it represents a class without any characters belonging to it. The
644 \fBcharclass-name\fR can be used as the \fIproperty\fR argument to the
645 \fBwctype\fR(3C) function, in regular expression and shell pattern-matching
646 bracket expressions, and by the \fBtr\fR(1) command.
647 .RE
648
649 .sp
650 .ne 2
651 .na
652 \fB\fBtoupper\fR\fR
653 .ad
654 .RS 18n
655 Define the mapping of lower-case letters to upper-case letters.
656 .sp
657 In the POSIX locale, at a minimum, the 26 lower-case characters:
658 .sp
659 .in +2
660 .nf
661 a b c d e f g h i j k l m n o p q r s t u v w x y z
662 .fi
663 .in -2
664 .sp
665
666 are mapped to the corresponding 26 upper-case characters:
667 .sp
668 .in +2
669 .nf
670 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
671 .fi
672 .in -2
673 .sp
674
675 In a locale definition file, the operand consists of character pairs, separated
676 by semicolons. The characters in each character pair are separated by a comma
677 and the pair enclosed by parentheses. The first character in each pair is the
678 lower-case letter, the second the corresponding upper-case letter. Only
679 characters specified for the keywords \fBlower\fR and \fBupper\fR can be
680 specified. The lower-case letters \fBa\fR to \fBz\fR, and their corresponding
681 upper-case letters \fBA\fR to \fBZ\fR, of the portable character set are
682 automatically included in this mapping, but only when the \fBtoupper\fR keyword
683 is omitted from the locale definition.
684 .RE
685
686 .sp
687 .ne 2
688 .na
689 \fB\fBtolower\fR\fR
690 .ad
691 .RS 18n
692 Define the mapping of upper-case letters to lower-case letters.
693 .sp
694 In the POSIX locale, at a minimum, the 26 upper-case characters:
695 .sp
696 .in +2
697 .nf
698 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
699 .fi
700 .in -2
701 .sp
702
703 are mapped to the corresponding 26 lower-case characters:
704 .sp
705 .in +2
706 .nf
707 a b c d e f g h i j k l m n o p q r s t u v w x y z
708 .fi
709 .in -2
710 .sp
711
712 In a locale definition file, the operand consists of character pairs, separated
713 by semicolons. The characters in each character pair are separated by a comma
714 and the pair enclosed by parentheses. The first character in each pair is the
715 upper-case letter, the second the corresponding lower-case letter. Only
716 characters specified for the keywords \fBlower\fR and \fBupper\fR can be
717 specified. If the \fBtolower\fR keyword is omitted from the locale definition,
718 the mapping will be the reverse mapping of the one specified for \fBtoupper\fR.
719 .RE
720
721 .SS "LC_COLLATE"
722 .LP
723 The \fBLC_COLLATE\fR category provides a collation sequence definition for
724 numerous utilities (such as \fBsort\fR(1), \fBuniq\fR(1), and so forth),
725 regular expression matching (see \fBregex\fR(5)), and the \fBstrcoll\fR(3C),
726 \fBstrxfrm\fR(3C), \fBwcscoll\fR(3C), and \fBwcsxfrm\fR(3C) functions.
727 .sp
728 .LP
729 A collation sequence definition defines the relative order between collating
730 elements (characters and multi-character collating elements) in the locale.
731 This order is expressed in terms of collation values, that is, by assigning
732 each element one or more collation values (also known as collation weights).
733 The following capabilities are provided:
734 .RS +4
735 .TP
736 1.
737 \fBMulti-character collating elements\fR. Specification of multi-character
738 collating elements (that is, sequences of two or more characters to be collated
739 as an entity).
740 .RE
741 .RS +4
742 .TP
743 2.
744 \fBUser-defined ordering of collating elements\fR. Each collating element is
745 assigned a collation value defining its order in the character (or basic)
746 collation sequence. This ordering is used by regular expressions and pattern
747 matching and, unless collation weights are explicity specified, also as the
748 collation weight to be used in sorting.
749 .RE
750 .RS +4
751 .TP
752 3.
753 \fBMultiple weights and equivalence classes\fR. Collating elements can be
754 assigned one or more (up to the limit \fB{COLL_WEIGHTS_MAX}\fR \fB)\fR
755 collating weights for use in sorting. The first weight is hereafter referred to
756 as the primary weight.
757 .RE
758 .RS +4
759 .TP
760 4.
761 \fBOne-to-Many mapping\fR. A single character is mapped into a string of
762 collating elements.
763 .RE
764 .RS +4
765 .TP
766 5.
767 \fBEquivalence class definition\fR. Two or more collating elements have the
768 same collation value (primary weight).
769 .RE
770 .RS +4
771 .TP
772 6.
773 \fBOrdering by weights\fR. When two strings are compared to determine their
774 relative order, the two strings are first broken up into a series of collating
775 elements. The elements in each successive pair of elements are then compared
776 according to the relative primary weights for the elements. If equal, and more
777 than one weight has been assigned, the pairs of collating elements are
778 recompared according to the relative subsequent weights, until either a pair of
779 collating elements compare unequal or the weights are exhausted.
780 .RE
781 .sp
782 .LP
783 The following keywords are recognized in a collation sequence definition. They
784 are described in detail in the following sections.
785 .sp
786 .ne 2
787 .na
788 \fB\fBcopy\fR\fR
789 .ad
790 .RS 21n
791 Specify the name of an existing locale which is used as the definition of this
792 category. If this keyword is specified, no other keyword is specified.
793 .RE
794
795 .sp
796 .ne 2
797 .na
798 \fB\fBcollating-element\fR\fR
799 .ad
800 .RS 21n
801 Define a collating-element symbol representing a multi-character collating
802 element. This keyword is optional.
803 .RE
804
805 .sp
806 .ne 2
807 .na
808 \fB\fBcollating-symbol\fR\fR
809 .ad
810 .RS 21n
811 Define a collating symbol for use in collation order statements. This keyword
812 is optional.
813 .RE
814
815 .sp
816 .ne 2
817 .na
818 \fB\fBorder_start\fR\fR
819 .ad
820 .RS 21n
821 Define collation rules. This statement is followed by one or more collation
822 order statements, assigning character collation values and collation weights to
823 collating elements.
824 .RE
825
826 .sp
827 .ne 2
828 .na
829 \fB\fBorder_end\fR\fR
830 .ad
831 .RS 21n
832 Specify the end of the collation-order statements.
833 .RE
834
835 .SS "collating-element \fIkeyword\fR"
836 .LP
837 In addition to the collating elements in the character set, the
838 \fBcollating-element\fR keyword is used to define multi-character collating
839 elements. The syntax is:
840 .sp
841 .in +2
842 .nf
843 \fB"collating-element %s from \e"%s\e"\en",\fR<\fIcollating-symbol\fR>,<\fIstring\fR>
844 .fi
845 .in -2
846
847 .sp
848 .LP
849 The <\fIcollating-symbol\fR> operand is a symbolic name, enclosed between angle
850 brackets (\fB<\fR and \fB>\fR), and must not duplicate any symbolic name in the
851 current charmap file (if any), or any other symbolic name defined in this
852 collation definition. The string operand is a string of two or more characters
853 that collates as an entity. A <\fIcollating-element\fR> defined via this
854 keyword is only recognized with the \fBLC_COLLATE\fR category.
855 .sp
856 .LP
857 Example:
858 .br
859 .in +2
860 \fBcollating-element\fR <\fBch\fR> from "<\fBc\fR><\fBh\fR>"
861 .in -2
862 .br
863 .in +2
864 \fBcollating-element\fR <\fBe-acute\fR> from "<\fBacute\fR><\fBe\fR>"
865 .in -2
866 .br
867 .in +2
868 \fBcollating-element\fR <\fBll\fR> from "\fBll\fR"
869 .in -2
870 .SS "collating-symbol \fIkeyword\fR"
871 .LP
872 This keyword will be used to define symbols for use in collation sequence
873 statements; that is, between the \fBorder_start\fR and the \fBorder_end\fR
874 keywords. The syntax is:
875 .sp
876 .in +2
877 .nf
878 \fB"collating-symbol %s\en",\fR<\fIcollating-symbol\fR>
879 .fi
880 .in -2
881
882 .sp
883 .LP
884 The \fB<\fR\fIcollating-symbol\fR\fB>\fR is a symbolic name, enclosed between
885 angle brackets (\fB<\fR and \fB>\fR), and must not duplicate any symbolic name
886 in the current charmap file (if any), or any other symbolic name defined in
887 this collation definition.
888 .sp
889 .LP
890 A \fBcollating-symbol\fR defined via this keyword is only recognized with the
891 \fBLC_COLLATE\fR category.
892 .sp
893 .LP
894 Example:
895 .br
896 .in +2
897 \fBcollating-symbol\fR <\fBUPPER_CASE\fR>
898 .in -2
899 .br
900 .in +2
901 \fBcollating-symbol\fR <\fBHIGH\fR>
902 .in -2
903 .sp
904 .LP
905 The \fBcollating-symbol\fR keyword defines a symbolic name that can be
906 associated with a relative position in the character order sequence. While such
907 a symbolic name does not represent any collating element, it can be used as a
908 weight.
909 .SS "order_start \fIkeyword\fR"
910 .LP
911 The \fBorder_start\fR keyword must precede collation order entries and also
912 defines the number of weights for this collation sequence definition and other
913 collation rules.
914 .sp
915 .LP
916 The syntax of the \fBorder_start\fR keyword is:
917 .sp
918 .in +2
919 .nf
920 \fB"order_start %s;%s;...;%s\en",\fR<\fIsort-rules\fR>,<\fIsort-rules\fR>
921 .fi
922 .in -2
923
924 .sp
925 .LP
926 The operands to the \fBorder_start\fR keyword are optional. If present, the
927 operands define rules to be applied when strings are compared. The number of
928 operands define how many weights each element is assigned. If no operands are
929 present, one \fBforward\fR operand is assumed. If present, the first operand
930 defines rules to be applied when comparing strings using the first (primary)
931 weight; the second when comparing strings using the second weight, and so on.
932 Operands are separated by semicolons (\fB;\fR). Each operand consists of one or
933 more collation directives, separated by commas (\fB,\fR). If the number of
934 operands exceeds the \fB{COLL_WEIGHTS_MAX}\fR limit, the utility will issue a
935 warning message. The following directives will be supported:
936 .sp
937 .ne 2
938 .na
939 \fB\fBforward\fR\fR
940 .ad
941 .RS 12n
942 Specifies that comparison operations for the weight level proceed from start of
943 string towards the end of string.
944 .RE
945
946 .sp
947 .ne 2
948 .na
949 \fB\fBbackward\fR\fR
950 .ad
951 .RS 12n
952 Specifies that comparison operations for the weight level proceed from end of
953 string towards the beginning of string.
954 .RE
955
956 .sp
957 .ne 2
958 .na
959 \fB\fBposition\fR\fR
960 .ad
961 .RS 12n
962 Specifies that comparison operations for the weight level will consider the
963 relative position of elements in the strings not subject to \fBIGNORE.\fR The
964 string containing an element not subject to \fBIGNORE\fR after the fewest
965 collating elements subject to \fBIGNORE\fR from the start of the compare will
966 collate first. If both strings contain a character not subject to \fBIGNORE\fR
967 in the same relative position, the collating values assigned to the elements
968 will determine the ordering. In case of equality, subsequent characters not
969 subject to \fBIGNORE\fR are considered in the same manner.
970 .RE
971
972 .sp
973 .LP
974 The directives \fBforward\fR and \fBbackward\fR are mutually exclusive.
975 .sp
976 .LP
977 Example:
978 .sp
979 .in +2
980 .nf
981 order_start forward;backward
982 .fi
983 .in -2
984 .sp
985
986 .sp
987 .LP
988 If no operands are specified, a single \fBforward\fR operand is assumed.
989 .SS "Collation Order"
990 .LP
991 The \fBorder_start\fR keyword is followed by collating identifier entries. The
992 syntax for the collating element entries is:
993 .sp
994 .in +2
995 .nf
996 \fB"%s %s;%s;...;%s\en"\fR<\fIcollating-identifier\fR>,<\fIweight\fR>,<\fIweight\fR>\fB,...\fR
997 .fi
998 .in -2
999
1000 .sp
1001 .LP
1002 Each \fIcollating-identifier\fR consists of either a character described in
1003 \fBLocale Definition\fR above, a <\fIcollating-element\fR>, a
1004 <\fIcollating-symbol\fR>, an ellipsis, or the special symbol \fBUNDEFINED\fR.
1005 The order in which collating elements are specified determines the character
1006 order sequence, such that each collating element compares less than the
1007 elements following it. The \fBNUL\fR character compares lower than any other
1008 character.
1009 .sp
1010 .LP
1011 A <\fIcollating-element\fR> is used to specify multi-character collating
1012 elements, and indicates that the character sequence specified via the
1013 <\fIcollating-element\fR> is to be collated as a unit and in the relative order
1014 specified by its place.
1015 .sp
1016 .LP
1017 A <\fIcollating-symbol\fR> is used to define a position in the relative order
1018 for use in weights. No weights are specified with a <\fIcollating-symbol\fR>.
1019 .sp
1020 .LP
1021 The ellipsis symbol specifies that a sequence of characters will collate
1022 according to their encoded character values. It is interpreted as indicating
1023 that all characters with a coded character set value higher than the value of
1024 the character in the preceding line, and lower than the coded character set
1025 value for the character in the following line, in the current coded character
1026 set, will be placed in the character collation order between the previous and
1027 the following character in ascending order according to their coded character
1028 set values. An initial ellipsis is interpreted as if the preceding line
1029 specified the NUL character, and a trailing ellipsis as if the following line
1030 specified the highest coded character set value in the current coded character
1031 set. An ellipsis is treated as invalid if the preceding or following lines do
1032 not specify characters in the current coded character set. The use of the
1033 ellipsis symbol ties the definition to a specific coded character set and may
1034 preclude the definition from being portable between implementations.
1035 .sp
1036 .LP
1037 The symbol \fBUNDEFINED\fR is interpreted as including all coded character set
1038 values not specified explicitly or via the ellipsis symbol. Such characters are
1039 inserted in the character collation order at the point indicated by the symbol,
1040 and in ascending order according to their coded character set values. If no
1041 \fBUNDEFINED\fR symbol is specified, and the current coded character set
1042 contains characters not specified in this section, the utility will issue a
1043 warning message and place such characters at the end of the character collation
1044 order.
1045 .sp
1046 .LP
1047 The optional operands for each collation-element are used to define the
1048 primary, secondary, or subsequent weights for the collating element. The first
1049 operand specifies the relative primary weight, the second the relative
1050 secondary weight, and so on. Two or more collation-elements can be assigned the
1051 same weight; they belong to the same \fIequivalence class\fR if they have the
1052 same primary weight. Collation behaves as if, for each weight level, elements
1053 subject to \fBIGNORE\fR are removed, unless the \fBposition\fR collation
1054 directive is specified for the corresponding level with the \fBorder_start\fR
1055 keyword. Then each successive pair of elements is compared according to the
1056 relative weights for the elements. If the two strings compare equal, the
1057 process is repeated for the next weight level, up to the limit
1058 {\fBCOLL_WEIGHTS_MAX\fR}.
1059 .sp
1060 .LP
1061 Weights are expressed as characters described in \fBLocale Definition\fR
1062 above, <\fIcollating-symbol\fR>s, <\fIcollating-element\fR>s, an ellipsis, or
1063 the special symbol \fBIGNORE.\fR A single character, a <\fIcollating-symbol\fR>
1064 or a <\fIcollating-element\fR> represent the relative position in the character
1065 collating sequence of the character or symbol, rather than the character or
1066 characters themselves. Thus, rather than assigning absolute values to weights,
1067 a particular weight is expressed using the relative order value assigned to a
1068 collating element based on its order in the character collation sequence.
1069 .sp
1070 .LP
1071 One-to-many mapping is indicated by specifying two or more concatenated
1072 characters or symbolic names. For example, if the character <\fBeszet\fR> is
1073 given the string "<\fBs\fR><\fBs\fR>" as a weight, comparisons are performed as
1074 if all occurrences of the character <\fBeszet\fR> are replaced by
1075 <\fBs\fR><\fBs\fR> (assuming that <\fBs\fR> has the collating weight
1076 <\fBs\fR>). If it is necessary to define <\fBeszet\fR> and <\fBs\fR><\fBs\fR>
1077 as an equivalence class, then a collating element must be defined for the
1078 string \fBss\fR.
1079 .sp
1080 .LP
1081 All characters specified via an ellipsis will by default be assigned unique
1082 weights, equal to the relative order of characters. Characters specified via an
1083 explicit or implicit \fBUNDEFINED\fR special symbol will by default be assigned
1084 the same primary weight (that is, belong to the same equivalence class). An
1085 ellipsis symbol as a weight is interpreted to mean that each character in the
1086 sequence has unique weights, equal to the relative order of their character in
1087 the character collation sequence. The use of the ellipsis as a weight is
1088 treated as an error if the collating element is neither an ellipsis nor the
1089 special symbol \fBUNDEFINED\fR.
1090 .sp
1091 .LP
1092 The special keyword \fBIGNORE\fR as a weight indicates that when strings are
1093 compared using the weights at the level where \fBIGNORE\fR is specified, the
1094 collating element is ignored; that is, as if the string did not contain the
1095 collating element. In regular expressions and pattern matching, all characters
1096 that are subject to \fBIGNORE\fR in their primary weight form an equivalence
1097 class.
1098 .sp
1099 .LP
1100 An empty operand is interpreted as the collating element itself.
1101 .sp
1102 .LP
1103 For example, the order statement:
1104 .sp
1105 .in +2
1106 .nf
1107 <a> <a>;<a>
1108 .fi
1109 .in -2
1110 .sp
1111
1112 .sp
1113 .LP
1114 is equal to:
1115 .sp
1116 .in +2
1117 .nf
1118 <a>
1119 .fi
1120 .in -2
1121 .sp
1122
1123 .sp
1124 .LP
1125 An ellipsis can be used as an operand if the collating element was an ellipsis,
1126 and is interpreted as the value of each character defined by the ellipsis.
1127 .sp
1128 .LP
1129 The collation order as defined in this section defines the interpretation of
1130 bracket expressions in regular expressions.
1131 .sp
1132 .LP
1133 Example:
1134 .sp
1135
1136 .sp
1137 .TS
1138 l l
1139 l l .
1140 \fBorder_start\fR \fBforward;backward\fR
1141 \fBUNDEFINED\fR \fBIGNORE;IGNORE\fR
1142 \fB<LOW>\fR
1143 \fB<space>\fR \fB<LOW>;<space>\fR
1144 \fB\&.\|.\|.\fR \fB<LOW>;.\|.\|.\fR
1145 \fB<a>\fR \fB<a>;<a>\fR
1146 \fB<a-acute>\fR \fB<a>;<a-acute>\fR
1147 \fB<a-grave>\fR \fB<a>;<a-grave>\fR
1148 \fB<A>\fR \fB<a>;<A>\fR
1149 \fB<A-acute>\fR \fB<a>;<A-acute>\fR
1150 \fB<A-grave>\fR \fB<a>;<A-grave>\fR
1151 \fB<ch>\fR \fB<ch>;<ch>\fR
1152 \fB<Ch>\fR \fB<ch>;<Ch>\fR
1153 \fB<s>\fR \fB<s>;<s>\fR
1154 \fB<eszet>\fR \fB"<s><s>";"<eszet><eszet>"\fR
1155 \fBorder_end\fR
1156 .TE
1157
1158 .sp
1159 .LP
1160 This example is interpreted as follows:
1161 .RS +4
1162 .TP
1163 1.
1164 The \fBUNDEFINED\fR means that all characters not specified in this
1165 definition (explicitly or via the ellipsis) are ignored for collation purposes;
1166 for regular expression purposes they are ordered first.
1167 .RE
1168 .RS +4
1169 .TP
1170 2.
1171 All characters between <\fBspace\fR> and <\fBa\fR> have the same primary
1172 equivalence class and individual secondary weights based on their ordinal
1173 encoded values.
1174 .RE
1175 .RS +4
1176 .TP
1177 3.
1178 All characters based on the upper- or lower-case character \fBa\fR belong to
1179 the same primary equivalence class.
1180 .RE
1181 .RS +4
1182 .TP
1183 4.
1184 The multi-character collating element <\fBch\fR> is represented by the
1185 collating symbol <\fBch\fR> and belongs to the same primary equivalence class
1186 as the multi-character collating element <\fBCh\fR>.
1187 .RE
1188 .SS "order_end \fIkeyword\fR"
1189 .LP
1190 The collating order entries must be terminated with an \fBorder_end\fR keyword.
1191 .SS "LC_MONETARY"
1192 .LP
1193 The \fBLC_MONETARY\fR category defines the rules and symbols that are used to
1194 format monetary numeric information. This information is available through the
1195 \fBlocaleconv\fR(3C) function
1196 .sp
1197 .LP
1198 The following items are defined in this category of the locale. The item names
1199 are the keywords recognized by the \fBlocaledef\fR(1) utility when defining a
1200 locale. They are also similar to the member names of the \fBlconv\fR structure
1201 defined in <\fBlocale.h\fR>. The \fBlocaleconv\fR function returns
1202 \fB{CHAR_MAX}\fR for unspecified integer items and the empty string (\fB""\fR)
1203 for unspecified or size zero string items.
1204 .sp
1205 .LP
1206 In a locale definition file the operands are strings. For some keywords, the
1207 strings can contain only integers. Keywords that are not provided, string
1208 values set to the empty string (\fB""\fR), or integer keywords set to \fB-1\fR,
1209 are used to indicate that the value is not available in the locale.
1210 .sp
1211 .ne 2
1212 .na
1213 \fB\fBint_curr_symbol\fR\fR
1214 .ad
1215 .RS 22n
1216 The international currency symbol. The operand is a four-character string, with
1217 the first three characters containing the alphabetic international currency
1218 symbol in accordance with those specified in the ISO 4217 standard. The fourth
1219 character is the character used to separate the international currency symbol
1220 from the monetary quantity.
1221 .RE
1222
1223 .sp
1224 .ne 2
1225 .na
1226 \fB\fBcurrency_symbol\fR\fR
1227 .ad
1228 .RS 22n
1229 The string used as the local currency symbol.
1230 .RE
1231
1232 .sp
1233 .ne 2
1234 .na
1235 \fB\fBmon_decimal_point\fR\fR
1236 .ad
1237 .RS 22n
1238 The operand is a string containing the symbol that is used as the decimal
1239 delimiter (radix character) in monetary formatted quantities.
1240 .RE
1241
1242 .sp
1243 .ne 2
1244 .na
1245 \fB\fBmon_thousands_sep\fR\fR
1246 .ad
1247 .RS 22n
1248 The operand is a string containing the symbol that is used as a separator for
1249 groups of digits to the left of the decimal delimiter in formatted monetary
1250 quantities.
1251 .RE
1252
1253 .sp
1254 .ne 2
1255 .na
1256 \fB\fBmon_grouping\fR\fR
1257 .ad
1258 .RS 22n
1259 Define the size of each group of digits in formatted monetary quantities. The
1260 operand is a sequence of integers separated by semicolons. Each integer
1261 specifies the number of digits in each group, with the initial integer defining
1262 the size of the group immediately preceding the decimal delimiter, and the
1263 following integers defining the preceding groups. If the last integer is not
1264 \fB-1\fR, then the size of the previous group (if any) will be repeatedly used
1265 for the remainder of the digits. If the last integer is \fB-1\fR, then no
1266 further grouping will be performed.
1267 .sp
1268 The following is an example of the interpretation of the \fBmon_grouping\fR
1269 keyword. Assuming that the value to be formatted is \fB123456789\fR and the
1270 \fBmon_thousands_sep\fR is \fB\&'\fR, then the following table shows the
1271 result. The third column shows the equivalent string in the ISO C standard that
1272 would be used by the \fBlocaleconv\fR function to accommodate this grouping.
1273 .sp
1274 .in +2
1275 .nf
1276 mon_grouping Formatted Value ISO C String
1277
1278 3;-1 123456'789 "\e3\e177"
1279 3 123'456'789 "\e3"
1280 3;2;-1 1234'56'789 "\e3\e2\e177"
1281 3;2 12'34'56'789 "\e3\e2"
1282 -1 1234567898 "\e177"
1283 .fi
1284 .in -2
1285 .sp
1286
1287 In these examples, the octal value of \fB{CHAR_MAX}\fR is 177.
1288 .RE
1289
1290 .sp
1291 .ne 2
1292 .na
1293 \fB\fBpositive_sign\fR\fR
1294 .ad
1295 .RS 22n
1296 A string used to indicate a non-negative-valued formatted monetary quantity.
1297 .RE
1298
1299 .sp
1300 .ne 2
1301 .na
1302 \fB\fBnegative_sign\fR\fR
1303 .ad
1304 .RS 22n
1305 A string used to indicate a negative-valued formatted monetary quantity.
1306 .RE
1307
1308 .sp
1309 .ne 2
1310 .na
1311 \fB\fBint_frac_digits\fR\fR
1312 .ad
1313 .RS 22n
1314 An integer representing the number of fractional digits (those to the right of
1315 the decimal delimiter) to be written in a formatted monetary quantity using
1316 \fBint_curr_symbol\fR.
1317 .RE
1318
1319 .sp
1320 .ne 2
1321 .na
1322 \fB\fBfrac_digits\fR\fR
1323 .ad
1324 .RS 22n
1325 An integer representing the number of fractional digits (those to the right of
1326 the decimal delimiter) to be written in a formatted monetary quantity using
1327 \fBcurrency_symbol\fR.
1328 .RE
1329
1330 .sp
1331 .ne 2
1332 .na
1333 \fB\fBp_cs_precedes\fR\fR
1334 .ad
1335 .RS 22n
1336 In an application conforming to the SUSv3 standard, an integer set to \fB1\fR
1337 if the \fBcurrency_symbol\fR precedes the value for a monetary quantity with a
1338 non-negative value, and set to \fB0\fR if the symbol succeeds the value.
1339 .sp
1340 In an application \fBnot\fR conforming to the SUSv3 standard, an integer set to
1341 \fB1\fR if the \fBcurrency_symbol\fR or \fBint_currency_symbol\fR precedes the
1342 value for a monetary quantity with a non-negative value, and set to \fB0\fR if
1343 the symbol succeeds the value.
1344 .RE
1345
1346 .sp
1347 .ne 2
1348 .na
1349 \fB\fBp_sep_by_space\fR\fR
1350 .ad
1351 .RS 22n
1352 In an application conforming to the SUSv3 standard, an integer set to \fB0\fR
1353 if no space separates the \fBcurrency_symbol\fR from the value for a monetary
1354 quantity with a non-negative value, set to \fB1\fR if a space separates the
1355 symbol from the value, and set to \fB2\fR if a space separates the symbol and
1356 the sign string, if adjacent.
1357 .sp
1358 In an application \fBnot\fR conforming to the SUSv3 standard, an integer set to
1359 \fB0\fR if no space separates the \fBcurrency_symbol\fR or
1360 \fBint_curr_symbol\fR from the value for a monetary quantity with a
1361 non-negative value, set to \fB1\fR if a space separates the symbol from the
1362 value, and set to \fB2\fR if a space separates the symbol and the sign string,
1363 if adjacent.
1364 .RE
1365
1366 .sp
1367 .ne 2
1368 .na
1369 \fB\fBn_cs_precedes\fR\fR
1370 .ad
1371 .RS 22n
1372 In an application conforming to the SUSv3 standard, an integer set to \fB1\fR
1373 if the \fBcurrency_symbol\fR precedes the value for a monetary quantity with a
1374 negative value, and set to \fB0\fR if the symbol succeeds the value.
1375 .sp
1376 In an application \fBnot\fR conforming to the SUSv3 standard, an integer set to
1377 \fB1\fR if the \fBcurrency_symbol\fR or \fBint_currency_symbol\fR precedes the
1378 value for a monetary quantity with a negative value, and set to \fB0\fR if the
1379 symbol succeeds the value.
1380 .RE
1381
1382 .sp
1383 .ne 2
1384 .na
1385 \fB\fBn_sep_by_space\fR\fR
1386 .ad
1387 .RS 22n
1388 In an application conforming to the SUSv3 standard, an integer set to \fB0\fR
1389 if no space separates the \fBcurrency_symbol\fR from the value for a monetary
1390 quantity with a negative value, set to \fB1\fR if a space separates the symbol
1391 from the value, and set to \fB2\fR if a space separates the symbol and the sign
1392 string, if adjacent.
1393 .sp
1394 In an application \fBnot\fR conforming to the SUSv3 standard, an integer set to
1395 \fB0\fR if no space separates the \fBcurrency_symbol\fR or
1396 \fBint_curr_symbol\fR from the value for a monetary quantity with a negative
1397 value, set to \fB1\fR if a space separates the symbol from the value, and set
1398 to \fB2\fR if a space separates the symbol and the sign string, if adjacent.
1399 .RE
1400
1401 .sp
1402 .ne 2
1403 .na
1404 \fB\fBp_sign_posn\fR\fR
1405 .ad
1406 .RS 22n
1407 An integer set to a value indicating the positioning of the \fBpositive_sign\fR
1408 for a monetary quantity with a non-negative value. The following integer values
1409 are recognized for both \fBp_sign_posn\fR and \fBn_sign_posn\fR:
1410 .sp
1411 In an application conforming to the SUSv3 standard:
1412 .sp
1413 .ne 2
1414 .na
1415 \fB\fB0\fR\fR
1416 .ad
1417 .RS 5n
1418 Parentheses enclose the quantity and the \fBcurrency_symbol\fR.
1419 .RE
1420
1421 .sp
1422 .ne 2
1423 .na
1424 \fB\fB1\fR\fR
1425 .ad
1426 .RS 5n
1427 The sign string precedes the quantity and the \fBcurrency_symbol\fR.
1428 .RE
1429
1430 .sp
1431 .ne 2
1432 .na
1433 \fB\fB2\fR\fR
1434 .ad
1435 .RS 5n
1436 The sign string succeeds the quantity and the \fBcurrency_symbol\fR.
1437 .RE
1438
1439 .sp
1440 .ne 2
1441 .na
1442 \fB\fB3\fR\fR
1443 .ad
1444 .RS 5n
1445 The sign string precedes the \fBcurrency_symbol\fR.
1446 .RE
1447
1448 .sp
1449 .ne 2
1450 .na
1451 \fB\fB4\fR\fR
1452 .ad
1453 .RS 5n
1454 The sign string succeeds the \fBcurrency_symbol\fR.
1455 .RE
1456
1457 In an application \fBnot\fR conforming to the SUSv3 standard:
1458 .sp
1459 .ne 2
1460 .na
1461 \fB\fB0\fR\fR
1462 .ad
1463 .RS 5n
1464 Parentheses enclose the quantity and the \fBcurrency_symbol\fR or
1465 \fBint_curr_symbol\fR.
1466 .RE
1467
1468 .sp
1469 .ne 2
1470 .na
1471 \fB\fB1\fR\fR
1472 .ad
1473 .RS 5n
1474 The sign string precedes the quantity and the \fBcurrency_symbol\fR or
1475 \fBint_curr_symbol\fR.
1476 .RE
1477
1478 .sp
1479 .ne 2
1480 .na
1481 \fB\fB2\fR\fR
1482 .ad
1483 .RS 5n
1484 The sign string succeeds the quantity and the \fBcurrency_symbol\fR or
1485 \fBint_curr_symbol\fR.
1486 .RE
1487
1488 .sp
1489 .ne 2
1490 .na
1491 \fB\fB3\fR\fR
1492 .ad
1493 .RS 5n
1494 The sign string precedes the \fBcurrency_symbol\fR or \fBint_curr_symbol\fR.
1495 .RE
1496
1497 .sp
1498 .ne 2
1499 .na
1500 \fB\fB4\fR\fR
1501 .ad
1502 .RS 5n
1503 The sign string succeeds the \fBcurrency_symbol\fR or \fBint_curr_symbol\fR.
1504 .RE
1505
1506 .RE
1507
1508 .sp
1509 .ne 2
1510 .na
1511 \fB\fBn_sign_posn\fR\fR
1512 .ad
1513 .RS 22n
1514 An integer set to a value indicating the positioning of the \fBnegative_sign\fR
1515 for a negative formatted monetary quantity.
1516 .RE
1517
1518 .sp
1519 .ne 2
1520 .na
1521 \fB\fBint_p_cs_precedes\fR\fR
1522 .ad
1523 .RS 22n
1524 An integer set to \fB1\fR if the \fBint_curr_symbol\fR precedes the value for a
1525 monetary quantity with a non-negative value, and set to \fB0\fR if the symbol
1526 succeeds the value.
1527 .RE
1528
1529 .sp
1530 .ne 2
1531 .na
1532 \fB\fBint_n_cs_precedes\fR\fR
1533 .ad
1534 .RS 22n
1535 An integer set to \fB1\fR if the \fBint_curr_symbol\fR precedes the value for a
1536 monetary quantity with a negative value, and set to \fB0\fR if the symbol
1537 succeeds the value.
1538 .RE
1539
1540 .sp
1541 .ne 2
1542 .na
1543 \fB\fBint_p_sep_by_space\fR\fR
1544 .ad
1545 .RS 22n
1546 An integer set to \fB0\fR if no space separates the \fBint_curr_symbol\fR from
1547 the value for a monetary quantity with a non-negative value, set to \fB1\fR if
1548 a space separates the symbol from the value, and set to \fB2\fR if a space
1549 separates the symbol and the sign string, if adjacent.
1550 .RE
1551
1552 .sp
1553 .ne 2
1554 .na
1555 \fB\fBint_n_sep_by_space\fR\fR
1556 .ad
1557 .RS 22n
1558 An integer set to \fB0\fR if no space separates the \fBint_curr_symbol\fR from
1559 the value for a monetary quantity with a negative value, set to \fB1\fR if a
1560 space separates the symbol from the value, and set to \fB2\fR if a space
1561 separates the symbol and the sign string, if adjacent.
1562 .RE
1563
1564 .sp
1565 .ne 2
1566 .na
1567 \fB\fBint_p_sign_posn\fR\fR
1568 .ad
1569 .RS 22n
1570 An integer set to a value indicating the positioning of the \fBpositive_sign\fR
1571 for a positive monetary quantity formatted with the international format. The
1572 following integer values are recognized for \fBint_p_sign_posn\fR and
1573 \fBint_n_sign_posn\fR:
1574 .sp
1575 .ne 2
1576 .na
1577 \fB\fB0\fR\fR
1578 .ad
1579 .RS 5n
1580 Parentheses enclose the quantity and the \fB\fR\fBint_curr_symbol\fR.
1581 .RE
1582
1583 .sp
1584 .ne 2
1585 .na
1586 \fB\fB1\fR\fR
1587 .ad
1588 .RS 5n
1589 The sign string precedes the quantity and the \fBint_curr_symbol\fR.
1590 .RE
1591
1592 .sp
1593 .ne 2
1594 .na
1595 \fB\fB2\fR\fR
1596 .ad
1597 .RS 5n
1598 The sign string precedes the quantity and the \fBint_curr_symbol\fR.
1599 .RE
1600
1601 .sp
1602 .ne 2
1603 .na
1604 \fB\fB3\fR\fR
1605 .ad
1606 .RS 5n
1607 The sign string precedes the \fBint_curr_symbol\fR.
1608 .RE
1609
1610 .sp
1611 .ne 2
1612 .na
1613 \fB\fB4\fR\fR
1614 .ad
1615 .RS 5n
1616 The sign string succeeds the \fBint_curr_symbol\fR.
1617 .RE
1618
1619 .RE
1620
1621 .sp
1622 .ne 2
1623 .na
1624 \fB\fBint_n_sign_posn\fR\fR
1625 .ad
1626 .RS 22n
1627 An integer set to a value indicating the positioning of the \fBnegative_sign\fR
1628 for a negative monetary quantity formatted with the international format.
1629 .RE
1630
1631 .sp
1632 .LP
1633 The following table shows the result of various combinations:
1634 .sp
1635
1636 .sp
1637 .TS
1638 l l l l l l
1639 l l l l l l .
1640 \fBp_sep_by_space\fR
1641 2 1 0
1642 \fBp_cs_precedes\fR= 1 \fBp_sign_posn\fR= 0 \fB($1.25)\fR \fB($1.25)\fR \fB($1.25)\fR
1643 \fBp_sign_posn\fR= 1 \fB+$1.25\fR \fB+$1.25\fR \fB+$1.25\fR
1644 \fBp_sign_posn\fR= 2 \fB$1.25+\fR \fB$1.25+\fR \fB$1.25+\fR
1645 \fBp_sign_posn\fR= 3 \fB+$1.25\fR \fB+$1.25\fR \fB+$1.25\fR
1646 \fBp_sign_posn\fR= 4 \fB$+1.25\fR \fB$+1.25\fR \fB$+1.25\fR
1647 \fBp_cs_precedes\fR= 0 \fBp_sign_posn\fR= 0 \fB(1.25 $)\fR \fB(1.25 $)\fR \fB(1.25$)\fR
1648 \fBp_sign_posn\fR= 1 \fB+1.25 $\fR \fB+1.25 $\fR \fB+1.25$\fR
1649 \fBp_sign_posn\fR= 2 \fB1.25$ +\fR \fB1.25 $+\fR \fB1.25$+\fR
1650 \fBp_sign_posn\fR= 3 \fB1.25+ $\fR \fB1.25 +$\fR \fB1.25+$\fR
1651 \fBp_sign_posn\fR= 4 \fB1.25$ +\fR \fB1.25 $+\fR \fB1.25$+\fR
1652 .TE
1653
1654 .sp
1655 .LP
1656 The monetary formatting definitions for the POSIX locale follow. The code
1657 listing depicts the \fBlocaledef\fR(1) input, the table representing the same
1658 information with the addition of \fBlocaleconv\fR(3C) and \fBnl_langinfo\fR(3C)
1659 formats. All values are unspecified in the POSIX locale.
1660 .sp
1661 .in +2
1662 .nf
1663 LC_MONETARY
1664 # This is the POSIX locale definition for
1665 # the LC_MONETARY category.
1666 #
1667 int_curr_symbol ""
1668 currency_symbol ""
1669 mon_decimal_point ""
1670 mon_thousands_sep ""
1671 mon_grouping -1
1672 positive_sign ""
1673 negative_sign ""
1674 int_frac_digits -1
1675 frac_digits -1
1676 p_cs_precedes -1
1677 p_sep_by_space -1
1678 n_cs_precedes -1
1679 n_sep_by_space -1
1680 p_sign_posn -1
1681 n_sign_posn -1
1682 int_p_cs_precedes -1
1683 int_p_sep_by_space -1
1684 int_n_cs_precedes -1
1685 int_n_sep_by_space -1
1686 int_p_sign_posn -1
1687 int_n_sign_posn -1
1688 #
1689 END LC_MONETARY
1690 .fi
1691 .in -2
1692 .sp
1693
1694 .sp
1695 .LP
1696 The entry \fBn/a\fR indicates that the value is not available in the POSIX
1697 locale.
1698 .SS "LC_NUMERIC"
1699 .LP
1700 The \fBLC_NUMERIC\fR category defines the rules and symbols that will be used
1701 to format non-monetary numeric information. This information is available
1702 through the \fBlocaleconv\fR(3C) function.
1703 .sp
1704 .LP
1705 The following items are defined in this category of the locale. The item names
1706 are the keywords recognized by the \fBlocaledef\fR utility when defining a
1707 locale. They are also similar to the member names of the \fIlconv\fR structure
1708 defined in <\fBlocale.h\fR>. The \fBlocaleconv()\fR function returns
1709 \fB{CHAR_MAX}\fR for unspecified integer items and the empty string (\fB""\fR)
1710 for unspecified or size zero string items.
1711 .sp
1712 .LP
1713 In a locale definition file the operands are strings. For some keywords, the
1714 strings only can contain integers. Keywords that are not provided, string
1715 values set to the empty string (\fB""\fR), or integer keywords set to \fB-1\fR,
1716 will be used to indicate that the value is not available in the locale. The
1717 following keywords are recognized:
1718 .sp
1719 .ne 2
1720 .na
1721 \fB\fBdecimal_point\fR\fR
1722 .ad
1723 .RS 17n
1724 The operand is a string containing the symbol that is used as the decimal
1725 delimiter (radix character) in numeric, non-monetary formatted quantities. This
1726 keyword cannot be omitted and cannot be set to the empty string. In contexts
1727 where standards limit the \fBdecimal_point\fR to a single byte, the result of
1728 specifying a multi-byte operand is unspecified.
1729 .RE
1730
1731 .sp
1732 .ne 2
1733 .na
1734 \fB\fBthousands_sep\fR\fR
1735 .ad
1736 .RS 17n
1737 The operand is a string containing the symbol that is used as a separator for
1738 groups of digits to the left of the decimal delimiter in numeric, non-monetary
1739 formatted monetary quantities. In contexts where standards limit the
1740 \fBthousands_sep\fR to a single byte, the result of specifying a multi-byte
1741 operand is unspecified.
1742 .RE
1743
1744 .sp
1745 .ne 2
1746 .na
1747 \fB\fBgrouping\fR\fR
1748 .ad
1749 .RS 17n
1750 Define the size of each group of digits in formatted non-monetary quantities.
1751 The operand is a sequence of integers separated by semicolons. Each integer
1752 specifies the number of digits in each group, with the initial integer defining
1753 the size of the group immediately preceding the decimal delimiter, and the
1754 following integers defining the preceding groups. If the last integer is not
1755 \fB\(mi1\fR, then the size of the previous group (if any) will be repeatedly
1756 used for the remainder of the digits. If the last integer is \fB-1\fR, then no
1757 further grouping will be performed. The non-monetary numeric formatting
1758 definitions for the POSIX locale follow. The code listing depicts the
1759 \fBlocaledef\fR input, the table representing the same information with the
1760 addition of \fBlocaleconv\fR values, and \fBnl_langinfo\fR constants.
1761 .sp
1762 .in +2
1763 .nf
1764 LC_NUMERIC
1765 # This is the POSIX locale definition for
1766 # the LC_NUMERIC category.
1767 #
1768 decimal_point "<period>"
1769 thousands_sep ""
1770 grouping -1
1771 #
1772 END LC_NUMERIC
1773 .fi
1774 .in -2
1775 .sp
1776
1777 .RE
1778
1779 .sp
1780
1781 .sp
1782 .TS
1783 l l l l l
1784 l l l l l .
1785 \fBPOSIX locale\fR \fBlanginfo\fR \fBlocaleconv()\fR \fBlocaledef\fR
1786 \fBItem\fR \fBValue\fR \fBConstant\fR \fBValue\fR \fBValue\fR
1787 _
1788 \fBdecimal_point\fR \fB"."\fR \fBRADIXCHAR\fR \fB"."\fR \fB\&.\fR
1789 \fBthousands_sep\fR \fBn/a\fR \fBTHOUSEP\fR \fB""\fR \fB""\fR
1790 \fBgrouping\fR \fBn/a\fR \fB-\fR \fB""\fR \fB\(mi1\fR
1791 .TE
1792
1793 .sp
1794 .LP
1795 The entry \fBn/a\fR indicates that the value is not available in the POSIX
1796 locale.
1797 .SS "LC_TIME"
1798 .LP
1799 The \fBLC_TIME\fR category defines the interpretation of the field descriptors
1800 supported by \fBdate\fR(1) and affects the behavior of the \fBstrftime\fR(3C),
1801 \fBwcsftime\fR(3C), \fBstrptime\fR(3C), and \fBnl_langinfo\fR(3C) functions.
1802 Because the interfaces for C-language access and locale definition differ
1803 significantly, they are described separately. For locale definition, the
1804 following mandatory keywords are recognized:
1805 .sp
1806 .ne 2
1807 .na
1808 \fB\fBabday\fR\fR
1809 .ad
1810 .RS 15n
1811 Define the abbreviated weekday names, corresponding to the \fB%a\fR field
1812 descriptor (conversion specification in the \fBstrftime()\fR, \fBwcsftime()\fR,
1813 and \fBstrptime()\fR functions). The operand consists of seven
1814 semicolon-separated strings, each surrounded by double-quotes. The first string
1815 is the abbreviated name of the day corresponding to Sunday, the second the
1816 abbreviated name of the day corresponding to Monday, and so on.
1817 .RE
1818
1819 .sp
1820 .ne 2
1821 .na
1822 \fB\fBday\fR\fR
1823 .ad
1824 .RS 15n
1825 Define the full weekday names, corresponding to the \fB%A\fR field descriptor.
1826 The operand consists of seven semicolon-separated strings, each surrounded by
1827 double-quotes. The first string is the full name of the day corresponding to
1828 Sunday, the second the full name of the day corresponding to Monday, and so on.
1829 .RE
1830
1831 .sp
1832 .ne 2
1833 .na
1834 \fB\fBabmon\fR\fR
1835 .ad
1836 .RS 15n
1837 Define the abbreviated month names, corresponding to the \fB%b\fR field
1838 descriptor. The operand consists of twelve semicolon-separated strings, each
1839 surrounded by double-quotes. The first string is the abbreviated name of the
1840 first month of the year (January), the second the abbreviated name of the
1841 second month, and so on.
1842 .RE
1843
1844 .sp
1845 .ne 2
1846 .na
1847 \fB\fBmon\fR\fR
1848 .ad
1849 .RS 15n
1850 Define the full month names, corresponding to the \fB%B\fR field descriptor.
1851 The operand consists of twelve semicolon-separated strings, each surrounded by
1852 double-quotes. The first string is the full name of the first month of the year
1853 (January), the second the full name of the second month, and so on.
1854 .RE
1855
1856 .sp
1857 .ne 2
1858 .na
1859 \fB\fBd_t_fmt\fR\fR
1860 .ad
1861 .RS 15n
1862 Define the appropriate date and time representation, corresponding to the
1863 \fB%c\fR field descriptor. The operand consists of a string, and can contain
1864 any combination of characters and field descriptors. In addition, the string
1865 can contain the escape sequences \e\e, \fB\ea\fR, \fB\eb\fR, \fB\ef\fR,
1866 \fB\en\fR, \fB\er\fR, \fB\et\fR, \fB\ev\fR\&.
1867 .RE
1868
1869 .sp
1870 .ne 2
1871 .na
1872 \fB\fBdate_fmt\fR\fR
1873 .ad
1874 .RS 15n
1875 Define the appropriate date and time representation, corresponding to the
1876 \fB%C\fR field descriptor. The operand consists of a string, and can contain
1877 any combination of characters and field descriptors. In addition, the string
1878 can contain the escape sequences \fB\e\e\fR, \fB\ea\fR, \fB\eb\fR, \fB\ef\fR,
1879 \fB\en\fR, \fB\er\fR, \fB\et\fR, \fB\ev\fR\&.
1880 .RE
1881
1882 .sp
1883 .ne 2
1884 .na
1885 \fB\fBd_fmt\fR\fR
1886 .ad
1887 .RS 15n
1888 Define the appropriate date representation, corresponding to the \fB%x\fR field
1889 descriptor. The operand consists of a string, and can contain any combination
1890 of characters and field descriptors. In addition, the string can contain the
1891 escape sequences \fB\e\e\fR, \fB\ea\fR, \fB\eb\fR, \fB\ef\fR, \fB\en\fR,
1892 \fB\er\fR, \fB\et\fR, \fB\ev\fR\&.
1893 .RE
1894
1895 .sp
1896 .ne 2
1897 .na
1898 \fB\fBt_fmt\fR\fR
1899 .ad
1900 .RS 15n
1901 Define the appropriate time representation, corresponding to the \fB%X\fR field
1902 descriptor. The operand consists of a string, and can contain any combination
1903 of characters and field descriptors. In addition, the string can contain the
1904 escape sequences \fB\e\e\fR, \fB\ea\fR, \fB\eb\fR, \fB\ef\fR, \fB\en\fR,
1905 \fB\er\fR, \fB\et\fR, \fB\ev\fR\&.
1906 .RE
1907
1908 .sp
1909 .ne 2
1910 .na
1911 \fB\fBam_pm\fR\fR
1912 .ad
1913 .RS 15n
1914 Define the appropriate representation of the \fIante meridiem\fR and \fIpost
1915 meridiem\fR strings, corresponding to the \fB%p\fR field descriptor. The
1916 operand consists of two strings, separated by a semicolon, each surrounded by
1917 double-quotes. The first string represents the \fIante meridiem\fR designation,
1918 the last string the \fIpost meridiem\fR designation.
1919 .RE
1920
1921 .sp
1922 .ne 2
1923 .na
1924 \fB\fBt_fmt_ampm\fR\fR
1925 .ad
1926 .RS 15n
1927 Define the appropriate time representation in the 12-hour clock format with
1928 \fBam_pm\fR, corresponding to the \fB%r\fR field descriptor. The operand
1929 consists of a string and can contain any combination of characters and field
1930 descriptors. If the string is empty, the 12-hour format is not supported in the
1931 locale.
1932 .RE
1933
1934 .sp
1935 .ne 2
1936 .na
1937 \fB\fBera\fR\fR
1938 .ad
1939 .RS 15n
1940 Define how years are counted and displayed for each era in a locale. The
1941 operand consists of semicolon-separated strings. Each string is an era
1942 description segment with the format:
1943 .sp
1944 \fIdirection\fR:\fIoffset\fR:\fIstart_date\fR:\fIend_date\fR:\fIera_name\fR:\fIera_format\fR
1945 .sp
1946 according to the definitions below. There can be as many era description
1947 segments as are necessary to describe the different eras.
1948 .sp
1949 The start of an era might not be the earliest point For example, the Christian
1950 era B.C. starts on the day before January 1, A.D. 1, and increases with earlier
1951 time.
1952 .sp
1953 .ne 2
1954 .na
1955 \fB\fIdirection\fR\fR
1956 .ad
1957 .RS 14n
1958 Either a \fB+\fR or a \fB-\fR character. The \fB+\fR character indicates that
1959 years closer to the \fIstart_date\fR have lower numbers than those closer to
1960 the \fIend_date\fR. The \fB-\fR character indicates that years closer to the
1961 \fIstart_date\fR have higher numbers than those closer to the \fIend_date\fR.
1962 .RE
1963
1964 .sp
1965 .ne 2
1966 .na
1967 \fB\fIoffset\fR\fR
1968 .ad
1969 .RS 14n
1970 The number of the year closest to the \fIstart_date\fR in the era,
1971 corresponding to the \fB%Eg\fR and \fB%Ey\fR field descriptors.
1972 .RE
1973
1974 .sp
1975 .ne 2
1976 .na
1977 \fB\fIstart_date\fR\fR
1978 .ad
1979 .RS 14n
1980 A date in the form \fIyyyy\fR/\fImm\fR/\fBdd\fR, where \fIyyyy\fR, \fImm\fR,
1981 and \fBdd\fR are the year, month and day numbers respectively of the start of
1982 the era. Years prior to A.D. 1 are represented as negative numbers.
1983 .RE
1984
1985 .sp
1986 .ne 2
1987 .na
1988 \fB\fIend_date\fR\fR
1989 .ad
1990 .RS 14n
1991 The ending date of the era, in the same format as the \fIstart_date\fR, or one
1992 of the two special values -* or +*. The value -* indicates that the ending date
1993 is the beginning of time. The value +* indicates that the ending date is the
1994 end of time.
1995 .RE
1996
1997 .sp
1998 .ne 2
1999 .na
2000 \fB\fIera_name\fR\fR
2001 .ad
2002 .RS 14n
2003 A string representing the name of the era, corresponding to the \fB%EC\fR field
2004 descriptor.
2005 .RE
2006
2007 .sp
2008 .ne 2
2009 .na
2010 \fB\fIera_format\fR\fR
2011 .ad
2012 .RS 14n
2013 A string for formatting the year in the era, corresponding to the \fB%EG\fR and
2014 \fB%EY\fR field descriptors.
2015 .RE
2016
2017 .RE
2018
2019 .sp
2020 .ne 2
2021 .na
2022 \fB\fBera_d_fmt\fR\fR
2023 .ad
2024 .RS 15n
2025 Define the format of the date in alternative era notation, corresponding to the
2026 \fB%Ex\fR field descriptor.
2027 .RE
2028
2029 .sp
2030 .ne 2
2031 .na
2032 \fB\fBera_t_fmt\fR\fR
2033 .ad
2034 .RS 15n
2035 Define the locale's appropriate alternative time format, corresponding to the
2036 \fB%EX\fR field descriptor.
2037 .RE
2038
2039 .sp
2040 .ne 2
2041 .na
2042 \fB\fBera_d_t_fmt\fR\fR
2043 .ad
2044 .RS 15n
2045 Define the locale's appropriate alternative date and time format, corresponding
2046 to the \fB%Ec\fR field descriptor.
2047 .RE
2048
2049 .sp
2050 .ne 2
2051 .na
2052 \fB\fBalt_digits\fR\fR
2053 .ad
2054 .RS 15n
2055 Define alternative symbols for digits, corresponding to the \fB%O\fR field
2056 descriptor modifier. The operand consists of semicolon-separated strings, each
2057 surrounded by double-quotes. The first string is the alternative symbol
2058 corresponding with zero, the second string the symbol corresponding with one,
2059 and so on. Up to 100 alternative symbol strings can be specified. The \fB%O\fR
2060 modifier indicates that the string corresponding to the value specified via the
2061 field descriptor will be used instead of the value.
2062 .RE
2063
2064 .SS "LC_TIME \fIC-language\fR Access"
2065 .LP
2066 The following information can be accessed. These correspond to constants
2067 defined in <\fBlanginfo.h\fR> and used as arguments to the
2068 \fBnl_langinfo\fR(3C) function.
2069 .sp
2070 .ne 2
2071 .na
2072 \fB\fBABDAY_\fIx\fR\fR\fR
2073 .ad
2074 .RS 15n
2075 The abbreviated weekday names (for example Sun), where \fIx\fR is a number from
2076 1 to 7.
2077 .RE
2078
2079 .sp
2080 .ne 2
2081 .na
2082 \fB\fBDAY_\fIx\fR\fR\fR
2083 .ad
2084 .RS 15n
2085 The full weekday names (for example Sunday), where \fIx\fR is a number from 1
2086 to 7.
2087 .RE
2088
2089 .sp
2090 .ne 2
2091 .na
2092 \fB\fBABMON_\fIx\fR\fR\fR
2093 .ad
2094 .RS 15n
2095 The abbreviated month names (for example Jan), where \fIx\fR is a number from 1
2096 to 12.
2097 .RE
2098
2099 .sp
2100 .ne 2
2101 .na
2102 \fB\fBMON_\fIx\fR\fR\fR
2103 .ad
2104 .RS 15n
2105 The full month names (for example January), where \fIx\fR is a number from 1 to
2106 12.
2107 .RE
2108
2109 .sp
2110 .ne 2
2111 .na
2112 \fB\fBD_T_FMT\fR\fR
2113 .ad
2114 .RS 15n
2115 The appropriate date and time representation.
2116 .RE
2117
2118 .sp
2119 .ne 2
2120 .na
2121 \fB\fBD_FMT\fR\fR
2122 .ad
2123 .RS 15n
2124 The appropriate date representation.
2125 .RE
2126
2127 .sp
2128 .ne 2
2129 .na
2130 \fB\fBT_FMT\fR\fR
2131 .ad
2132 .RS 15n
2133 The appropriate time representation.
2134 .RE
2135
2136 .sp
2137 .ne 2
2138 .na
2139 \fB\fBAM_STR\fR\fR
2140 .ad
2141 .RS 15n
2142 The appropriate ante-meridiem affix.
2143 .RE
2144
2145 .sp
2146 .ne 2
2147 .na
2148 \fB\fBPM_STR\fR\fR
2149 .ad
2150 .RS 15n
2151 The appropriate post-meridiem affix.
2152 .RE
2153
2154 .sp
2155 .ne 2
2156 .na
2157 \fB\fBT_FMT_AMPM\fR\fR
2158 .ad
2159 .RS 15n
2160 The appropriate time representation in the 12-hour clock format with
2161 \fBAM_STR\fR and \fBPM_STR.\fR
2162 .RE
2163
2164 .sp
2165 .ne 2
2166 .na
2167 \fB\fBERA\fR\fR
2168 .ad
2169 .RS 15n
2170 The era description segments, which describe how years are counted and
2171 displayed for each era in a locale. Each era description segment has the
2172 format:
2173 .sp
2174 .in +2
2175 .nf
2176 \fIdirection\fR:\fIoffset\fR:\fIstart_date\fR:\fIend_date\fR:\fIera_name\fR:\fIera_format\fR
2177 .fi
2178 .in -2
2179 .sp
2180
2181 according to the definitions below. There will be as many era description
2182 segments as are necessary to describe the different eras. Era description
2183 segments are separated by semicolons.
2184 .sp
2185 The start of an era might not be the earliest point For example, the Christian
2186 era B.C. starts on the day before January 1, A.D. 1, and increases with earlier
2187 time.
2188 .sp
2189 .ne 2
2190 .na
2191 \fB\fIdirection\fR\fR
2192 .ad
2193 .RS 14n
2194 Either a + or a - character. The + character indicates that years closer to the
2195 \fIstart_date\fR have lower numbers than those closer to the \fIend_date\fR.
2196 The - character indicates that years closer to the \fIstart_date\fR have higher
2197 numbers than those closer to the \fIend_date\fR.
2198 .RE
2199
2200 .sp
2201 .ne 2
2202 .na
2203 \fB\fIoffset\fR\fR
2204 .ad
2205 .RS 14n
2206 The number of the year closest to the start_date in the era.
2207 .RE
2208
2209 .sp
2210 .ne 2
2211 .na
2212 \fB\fIstart_date\fR\fR
2213 .ad
2214 .RS 14n
2215 A date in the form \fIyyyy\fR/\fImm\fR/\fIdd\fR, where \fIyyyy\fR, \fImm\fR,
2216 and \fBdd\fR are the year, month and day numbers respectively of the start of
2217 the era. Years prior to AD 1 are represented as negative numbers.
2218 .RE
2219
2220 .sp
2221 .ne 2
2222 .na
2223 \fB\fIend_date\fR\fR
2224 .ad
2225 .RS 14n
2226 The ending date of the era, in the same format as the \fIstart_date\fR, or one
2227 of the two special values, \fB-*\fR or \fB+*\fR. The value \fB-*\fR indicates
2228 that the ending date is the beginning of time. The value \fB+*\fR indicates
2229 that the ending date is the end of time.
2230 .RE
2231
2232 .sp
2233 .ne 2
2234 .na
2235 \fB\fIera_name\fR\fR
2236 .ad
2237 .RS 14n
2238 The era, corresponding to the \fB%EC\fR conversion specification.
2239 .RE
2240
2241 .sp
2242 .ne 2
2243 .na
2244 \fB\fIera_format\fR\fR
2245 .ad
2246 .RS 14n
2247 The format of the year in the era, corresponding to the \fB%EY\fR and \fB%EY\fR
2248 conversion specifications.
2249 .RE
2250
2251 .RE
2252
2253 .sp
2254 .ne 2
2255 .na
2256 \fB\fBERA_D_FMT\fR\fR
2257 .ad
2258 .RS 15n
2259 The era date format.
2260 .RE
2261
2262 .sp
2263 .ne 2
2264 .na
2265 \fB\fBERA_T_FMT\fR\fR
2266 .ad
2267 .RS 15n
2268 The locale's appropriate alternative time format, corresponding to the
2269 \fB%EX\fR field descriptor.
2270 .RE
2271
2272 .sp
2273 .ne 2
2274 .na
2275 \fB\fBERA_D_T_FMT\fR\fR
2276 .ad
2277 .RS 15n
2278 The locale's appropriate alternative date and time format, corresponding to the
2279 \fB%Ec\fR field descriptor.
2280 .RE
2281
2282 .sp
2283 .ne 2
2284 .na
2285 \fB\fBALT_DIGITS\fR\fR
2286 .ad
2287 .RS 15n
2288 The alternative symbols for digits, corresponding to the \fB%O\fR conversion
2289 specification modifier. The value consists of semicolon-separated symbols. The
2290 first is the alternative symbol corresponding to zero, the second is the symbol
2291 corresponding to one, and so on. Up to 100 alternative symbols may be
2292 specified. The following table displays the correspondence between the items
2293 described above and the conversion specifiers used by \fBdate\fR(1) and the
2294 \fBstrftime\fR(3C), \fBwcsftime\fR(3C), and \fBstrptime\fR(3C) functions.
2295 .RE
2296
2297 .sp
2298
2299 .sp
2300 .TS
2301 box;
2302 c | c | c
2303 c | c | c .
2304 \fBlocaledef\fR \fBlanginfo\fR \fBConversion\fR
2305 \fBKeyword\fR \fBConstant\fR \fBSpecifier\fR
2306 _
2307 \fBabday\fR \fBABDAY_\fR\fIx\fR \fB%a\fR
2308 \fBday\fR \fBDAY_\fR\fIx\fR \fB%A\fR
2309 \fBabmon\fR \fBABMON_\fR\fIx\fR \fB%b\fR
2310 \fBmon\fR \fBMON\fR \fB%B\fR
2311 \fBd_t_fmt\fR \fBD_T_FMT\fR \fB%c\fR
2312 \fBdate_fmt\fR \fBDATE_FMT\fR \fB%C\fR
2313 \fBd_fmt\fR \fBD_FMT\fR \fB%x\fR
2314 \fBt_fmt\fR \fBT_FMT\fR \fB%X\fR
2315 \fBam_pm\fR \fBAM_STR\fR \fB%p\fR
2316 \fBam_pm\fR \fBPM_STR\fR \fB%p\fR
2317 \fBt_fmt_ampm\fR \fBT_FMT_AMPM\fR \fB%r\fR
2318 \fBera\fR \fBERA\fR \fB%EC, %Eg,\fR
2319 \fB%EG, %Ey, %EY\fR
2320 \fBera_d_fmt\fR \fBERA_D_FMT\fR \fB%Ex\fR
2321 \fBera_t_fmt\fR \fBERA_T_FMT\fR \fB%EX\fR
2322 \fBera_d_t_fmt\fR \fBERA_D_T_FMT\fR \fB%Ec\fR
2323 \fBalt_digits\fR \fBALT_DIGITS\fR \fB%O\fR
2324 .TE
2325
2326 .SS "LC_TIME \fIGeneral\fR Information"
2327 .LP
2328 Although certain of the field descriptors in the POSIX locale (such as the name
2329 of the month) are shown with initial capital letters, this need not be the case
2330 in other locales. Programs using these fields may need to adjust the
2331 capitalization if the output is going to be used at the beginning of a
2332 sentence.
2333 .sp
2334 .LP
2335 The \fBLC_TIME\fR descriptions of \fBabday\fR, \fBday\fR, \fBmon\fR, and
2336 \fBabmon\fR imply a Gregorian style calendar (7-day weeks, 12-month years, leap
2337 years, and so forth). Formatting time strings for other types of calendars is
2338 outside the scope of this document set.
2339 .sp
2340 .LP
2341 As specified under \fBdate\fR in \fBLocale Definition\fR and
2342 \fBstrftime\fR(3C), the field descriptors corresponding to the optional
2343 keywords consist of a modifier followed by a traditional field descriptor (for
2344 instance \fB%Ex\fR). If the optional keywords are not supported by the
2345 implementation or are unspecified for the current locale, these field
2346 descriptors are treated as the traditional field descriptor. For instance,
2347 assume the following keywords:
2348 .sp
2349 .in +2
2350 .nf
2351 alt_digits "0th" ; "1st" ; "2nd" ; "3rd" ; "4th" ; "5th" ; \e
2352 "6th" ; "7th" ; "8th" ; "9th" ; "10th">
2353 d_fmt "The %Od day of %B in %Y"
2354 .fi
2355 .in -2
2356 .sp
2357
2358 .sp
2359 .LP
2360 On 7/4/1776, the \fB%x\fR field descriptor would result in "The 4th day of July
2361 in 1776" while 7/14/1789 would come out as "The 14 day of July in 1789" The
2362 above example is for illustrative purposes only. The \fB%O\fR modifier is
2363 primarily intended to provide for Kanji or Hindi digits in \fBdate\fR formats.
2364 .SS "LC_MESSAGES"
2365 .LP
2366 The \fBLC_MESSAGES\fR category defines the format and values for affirmative
2367 and negative responses.
2368 .sp
2369 .LP
2370 The following keywords are recognized as part of the locale definition file.
2371 The \fBnl_langinfo\fR(3C) function accepts upper-case versions of the first
2372 four keywords.
2373 .sp
2374 .ne 2
2375 .na
2376 \fB\fByesexpr\fR\fR
2377 .ad
2378 .RS 11n
2379 The operand consists of an extended regular expression (see \fBregex\fR(5))
2380 that describes the acceptable affirmative response to a question expecting an
2381 affirmative or negative response.
2382 .RE
2383
2384 .sp
2385 .ne 2
2386 .na
2387 \fB\fBnoexpr\fR\fR
2388 .ad
2389 .RS 11n
2390 The operand consists of an extended regular expression that describes the
2391 acceptable negative response to a question expecting an affirmative or negative
2392 response.
2393 .RE
2394
2395 .sp
2396 .ne 2
2397 .na
2398 \fB\fByesstr\fR\fR
2399 .ad
2400 .RS 11n
2401 The operand consists of a fixed string (not a regular expression) that can be
2402 used by an application for composition of a message that lists an acceptable
2403 affirmative response, such as in a prompt.
2404 .RE
2405
2406 .sp
2407 .ne 2
2408 .na
2409 \fB\fBnostr\fR\fR
2410 .ad
2411 .RS 11n
2412 The operand consists of a fixed string that can be used by an application for
2413 composition of a message that lists an acceptable negative response. The format
2414 and values for affirmative and negative responses of the POSIX locale follow;
2415 the code listing depicting the \fBlocaledef\fR input, the table representing
2416 the same information with the addition of \fBnl_langinfo()\fR constants.
2417 .sp
2418 .in +2
2419 .nf
2420 LC_MESSAGES
2421 # This is the POSIX locale definition for
2422 # the LC_MESSAGES category.
2423 #
2424 yesexpr "<circumflex><left-square-bracket><y><Y>\e
2425 <right-square-bracket>"
2426 #
2427 noexpr "<circumflex><left-square-bracket><n><N>\e
2428 <right-square-bracket>"
2429 #
2430 yesstr "yes"
2431 nostr "no"
2432 END LC_MESSAGES
2433 .fi
2434 .in -2
2435 .sp
2436
2437 .RE
2438
2439 .sp
2440
2441 .sp
2442 .TS
2443 box;
2444 l | l | l
2445 l | l | l .
2446 \fBlocaledef Keyword\fR \fBlanginfo Constant\fR \fBPOSIX Locale Value\fR
2447 \fByesexpr\fR \fBYESEXPR\fR \fB"^[yY]"\fR
2448 \fBnoexpr\fR \fBNOEXPR\fR \fB"^[nN]"\fR
2449 \fByesstr\fR \fBYESSTR\fR \fB"yes"\fR
2450 \fBnostr\fR \fBNOSTR\fR \fB"no"\fR
2451 .TE
2452
2453 .sp
2454 .LP
2455 In an application conforming to the SUSv3 standard, the information on
2456 \fByesstr\fR and \fBnostr\fR is not available.
2457 .SH SEE ALSO
2458 .LP
2459 \fBdate\fR(1), \fBlocale\fR(1), \fBlocaledef\fR(1), \fBsort\fR(1), \fBtr\fR(1),
2460 \fBuniq\fR(1), \fBlocaleconv\fR(3C), \fBnl_langinfo\fR(3C),
2461 \fBsetlocale\fR(3C), \fBstrcoll\fR(3C), \fBstrftime\fR(3C), \fBstrptime\fR(3C),
2462 \fBstrxfrm\fR(3C), \fBwcscoll\fR(3C), \fBwcsftime\fR(3C), \fBwcsxfrm\fR(3C),
2463 \fBwctype\fR(3C), \fBattributes\fR(5), \fBcharmap\fR(5), \fBextensions\fR(5),
2464 \fBregex\fR(5)