xref: /freebsd/lib/libc/locale/nl_langinfo.3 (revision 6be3386466ab79a84b48429ae66244f21526d3df)
1.\" Copyright (c) 2001 Alexey Zelkin <phantom@FreeBSD.org>
2.\" All rights reserved.
3.\"
4.\" Redistribution and use in source and binary forms, with or without
5.\" modification, are permitted provided that the following conditions
6.\" are met:
7.\" 1. Redistributions of source code must retain the above copyright
8.\"    notice, this list of conditions and the following disclaimer.
9.\" 2. Redistributions in binary form must reproduce the above copyright
10.\"    notice, this list of conditions and the following disclaimer in the
11.\"    documentation and/or other materials provided with the distribution.
12.\"
13.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
14.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
15.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
16.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
17.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
18.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
19.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
20.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
21.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
22.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
23.\" SUCH DAMAGE.
24.\"
25.\" $FreeBSD$
26.\"
27.Dd December 14, 2020
28.Dt NL_LANGINFO 3
29.Os
30.Sh NAME
31.Nm nl_langinfo
32.Nd language information
33.Sh LIBRARY
34.Lb libc
35.Sh SYNOPSIS
36.In langinfo.h
37.Ft char *
38.Fn nl_langinfo "nl_item item"
39.Ft char *
40.Fn nl_langinfo_l "nl_item item" "locale_t loc"
41.Sh DESCRIPTION
42The
43.Fn nl_langinfo
44function returns a pointer to a string containing information relevant to
45the particular language or cultural area defined in the program or thread's
46locale, or in the case of
47.Fn nl_langinfo_l ,
48the locale passed as the second argument.
49.Pp
50Calls to
51.Fn setlocale
52with a category corresponding to the category of
53.Fa item ,
54or to the
55category
56.Dv LC_ALL ,
57may overwrite the buffer pointed to by the return value.
58.Pp
59The manifest constant names and values of
60.Fa item
61are defined in
62.In langinfo.h .
63.Pp
64The following standard constants are recognized:
65.Bl -column "Constant" "Category"
66.It Sy Constant Ta Sy Category Ta Sy Description
67.It Dv CODESET Ta Dv LC_CTYPE Ta codeset name
68.It Dv D_T_FMT Ta Dv LC_TIME Ta string for formatting date and time
69.It Dv D_FMT Ta Dv LC_TIME Ta date format string
70.It Dv T_FMT Ta Dv LC_TIME Ta time format string
71.It Dv T_FMT_AMPM Ta Dv LC_TIME Ta a.m. or p.m. time format string
72.It Dv AM_STR Ta Dv LC_TIME Ta ante-meridiem affix
73.It Dv PM_STR Ta Dv LC_TIME Ta post-meridiem affix
74.It Dv DAY_1 Ta Dv LC_TIME Ta name of the first day of the week
75.It Dv DAY_2 Ta Dv LC_TIME Ta name of the second day of the week
76.It Dv DAY_3 Ta Dv LC_TIME Ta name of the third day of the week
77.It Dv DAY_4 Ta Dv LC_TIME Ta name of the fourth day of the week
78.It Dv DAY_5 Ta Dv LC_TIME Ta name of the fifth day of the week
79.It Dv DAY_6 Ta Dv LC_TIME Ta name of the sixth day of the week
80.It Dv DAY_7 Ta Dv LC_TIME Ta name of the seventh day of the week
81.It Dv ABDAY_1 Ta Dv LC_TIME Ta abbreviated name of the first day of the week
82.It Dv ABDAY_2 Ta Dv LC_TIME Ta abbreviated name of the second day of the week
83.It Dv ABDAY_3 Ta Dv LC_TIME Ta abbreviated name of the third day of the week
84.It Dv ABDAY_4 Ta Dv LC_TIME Ta abbreviated name of the fourth day of the week
85.It Dv ABDAY_5 Ta Dv LC_TIME Ta abbreviated name of the fifth day of the week
86.It Dv ABDAY_6 Ta Dv LC_TIME Ta abbreviated name of the sixth day of the week
87.It Dv ABDAY_7 Ta Dv LC_TIME Ta abbreviated name of the seventh day of the week
88.It Dv MON_1 Ta Dv LC_TIME Ta name of the first month of the year
89.It Dv MON_2 Ta Dv LC_TIME Ta name of the second month
90.It Dv MON_3 Ta Dv LC_TIME Ta name of the third month
91.It Dv MON_4 Ta Dv LC_TIME Ta name of the fourth month
92.It Dv MON_5 Ta Dv LC_TIME Ta name of the fifth month
93.It Dv MON_6 Ta Dv LC_TIME Ta name of the sixth month
94.It Dv MON_7 Ta Dv LC_TIME Ta name of the seventh month
95.It Dv MON_8 Ta Dv LC_TIME Ta name of the eighth month
96.It Dv MON_9 Ta Dv LC_TIME Ta name of the ninth month
97.It Dv MON_10 Ta Dv LC_TIME Ta name of the tenth month
98.It Dv MON_11 Ta Dv LC_TIME Ta name of the eleventh month
99.It Dv MON_12 Ta Dv LC_TIME Ta name of the twelfth month
100.It Dv ABMON_1 Ta Dv LC_TIME Ta abbreviated name of the first month
101.It Dv ABMON_2 Ta Dv LC_TIME Ta abbreviated name of the second month
102.It Dv ABMON_3 Ta Dv LC_TIME Ta abbreviated name of the third month
103.It Dv ABMON_4 Ta Dv LC_TIME Ta abbreviated name of the fourth month
104.It Dv ABMON_5 Ta Dv LC_TIME Ta abbreviated name of the fifth month
105.It Dv ABMON_6 Ta Dv LC_TIME Ta abbreviated name of the sixth month
106.It Dv ABMON_7 Ta Dv LC_TIME Ta abbreviated name of the seventh month
107.It Dv ABMON_8 Ta Dv LC_TIME Ta abbreviated name of the eighth month
108.It Dv ABMON_9 Ta Dv LC_TIME Ta abbreviated name of the ninth month
109.It Dv ABMON_10 Ta Dv LC_TIME Ta abbreviated name of the tenth month
110.It Dv ABMON_11 Ta Dv LC_TIME Ta abbreviated name of the eleventh month
111.It Dv ABMON_12 Ta Dv LC_TIME Ta abbreviated name of the twelfth month
112.It Dv ERA Ta Dv LC_TIME Ta era description segments
113.It Dv ERA_D_FMT Ta Dv LC_TIME Ta era date format string
114.It Dv ERA_D_T_FMT Ta Dv LC_TIME Ta era date and time format string
115.It Dv ERA_T_FMT Ta Dv LC_TIME Ta era time format string
116.It Dv ALT_DIGITS Ta Dv LC_TIME Ta alternative symbols for digits
117.It Dv RADIXCHAR Ta Dv LC_NUMERIC Ta radix character
118.It Dv THOUSEP Ta Dv LC_NUMERIC Ta separator for thousands
119.It Dv YESEXPR Ta Dv LC_MESSAGES Ta affirmative response extended regular
120expression
121.It Dv NOEXPR Ta Dv LC_MESSAGES Ta negative response extended regular expression
122.It Dv CRNCYSTR Ta Dv LC_MONETARY Ta local currency symbol, preceded by '-' if the
123symbol should appear before the value, '+' if the symbol should appear after the
124value, or '.' if the symbol should replace the radix character; if the local
125currency symbol is the empty string, implementations may return the empty string
126.Pq Qq
127.El
128.Pp
129The following non-standard
130.Fx
131extensions are recognized:
132.Bl -column "Constant" "Category"
133.It Sy Constant Ta Sy Category Ta Sy Description
134.It Dv D_MD_ORDER Ta Dv LC_TIME Ta month/day order
135.It Dv ALTMON_1 Ta Dv LC_TIME Ta standalone name of the first month
136.It Dv ALTMON_2 Ta Dv LC_TIME Ta standalone name of the second month
137.It Dv ALTMON_3 Ta Dv LC_TIME Ta standalone name of the third month
138.It Dv ALTMON_4 Ta Dv LC_TIME Ta standalone name of the fourth month
139.It Dv ALTMON_5 Ta Dv LC_TIME Ta standalone name of the fifth month
140.It Dv ALTMON_6 Ta Dv LC_TIME Ta standalone name of the sixth month
141.It Dv ALTMON_7 Ta Dv LC_TIME Ta standalone name of the seventh month
142.It Dv ALTMON_8 Ta Dv LC_TIME Ta standalone name of the eighth month
143.It Dv ALTMON_9 Ta Dv LC_TIME Ta standalone name of the ninth month
144.It Dv ALTMON_10 Ta Dv LC_TIME Ta standalone name of the tenth month
145.It Dv ALTMON_11 Ta Dv LC_TIME Ta standalone name of the eleventh month
146.It Dv ALTMON_12 Ta Dv LC_TIME Ta standalone name of the twelfth month
147.It Dv YESSTR Ta Dv LC_MESSAGES Ta affirmative response string
148.It Dv NOSTR Ta Dv LC_MESSAGES Ta negative response string
149.El
150.Sh RETURN VALUES
151In a locale where langinfo data is not defined,
152.Fn nl_langinfo
153returns a pointer to the corresponding string in the POSIX locale.
154.Fn nl_langinfo_l
155returns the same values as
156.Fn nl_langinfo .
157In all locales,
158.Fn nl_langinfo
159returns a pointer to an empty string if
160.Fa item
161contains an invalid setting.
162.Sh EXAMPLES
163For example:
164.Pp
165.Dl nl_langinfo(ABDAY_1)
166.Pp
167would return a pointer to the string
168.Qq Li Dom
169if the identified language was
170Portuguese, and
171.Qq Li Sun
172if the identified language was English.
173.Sh SEE ALSO
174.Xr setlocale 3
175.Sh STANDARDS
176The
177.Fn nl_langinfo
178function conforms to
179.St -susv2 .
180The
181.Fn nl_langinfo_l
182function conforms to
183.St -p1003.1-2008 .
184.Sh HISTORY
185The
186.Fn nl_langinfo
187function first appeared in
188.Fx 4.6 .
189