.\" $NetBSD: nl_langinfo.3,v 1.21 2017/07/03 21:32:49 wiz Exp $
.\"
.\" Written by J.T. Conklin <jtc@NetBSD.org>.
.\" Public domain.
.\"
.Dd April 14, 2011
.Dt NL_LANGINFO 3
.Os
.Sh NAME
.Nm nl_langinfo
.Nd get locale information
.Sh LIBRARY
.Lb libc
.Sh SYNOPSIS
.In langinfo.h
.Ft char *
.Fn nl_langinfo "nl_item item"
.Sh DESCRIPTION
The
.Fn nl_langinfo
function returns a pointer to a string containing information
set by the program's locale.
.Pp
The names and values of
.Fa item
are defined in
.In langinfo.h .
The entries under Category indicate in which
.Xr setlocale 3
category each item is defined.
.Bl -column ERA_D_T_FMT LC_MESSAGES
.It Sy Constant Ta Sy Category Ta Sy Meaning
.It CODESET LC_CTYPE Codeset name
.It D_T_FMT LC_TIME String for formatting date and time
.It D_FMT LC_TIME Date format string
.It T_FMT LC_TIME Time format string
.It T_FMT_AMPM LC_TIME A.M. or P.M. time format string
.It AM_STR LC_TIME Ante-meridiem affix
.It PM_STR LC_TIME Post-meridiem affix
.It DAY_1 LC_TIME Name of the first day of the week (e.g.: Sunday)
.It DAY_2 LC_TIME Name of the second day of the week (e.g.: Monday)
.It DAY_3 LC_TIME Name of the third day of the week (e.g.: Tuesday)
.It DAY_4 LC_TIME Name of the fourth day of the week (e.g.: Wednesday)
.It DAY_5 LC_TIME Name of the fifth day of the week (e.g.: Thursday)
.It DAY_6 LC_TIME Name of the sixth day of the week (e.g.: Friday)
.It DAY_7 LC_TIME Name of the seventh day of the week (e.g.: Saturday)
.It ABDAY_1 LC_TIME Abbreviated name of the first day of the week
.It ABDAY_2 LC_TIME Abbreviated name of the second day of the week
.It ABDAY_3 LC_TIME Abbreviated name of the third day of the week
.It ABDAY_4 LC_TIME Abbreviated name of the fourth day of the week
.It ABDAY_5 LC_TIME Abbreviated name of the fifth day of the week
.It ABDAY_6 LC_TIME Abbreviated name of the sixth day of the week
.It ABDAY_7 LC_TIME Abbreviated name of the seventh day of the week
.It MON_1 LC_TIME Name of the first month of the year
.It MON_2 LC_TIME Name of the second month
.It MON_3 LC_TIME Name of the third month
.It MON_4 LC_TIME Name of the fourth month
.It MON_5 LC_TIME Name of the fifth month
.It MON_6 LC_TIME Name of the sixth month
.It MON_7 LC_TIME Name of the seventh month
.It MON_8 LC_TIME Name of the eighth month
.It MON_9 LC_TIME Name of the ninth month
.It MON_10 LC_TIME Name of the tenth month
.It MON_11 LC_TIME Name of the eleventh month
.It MON_12 LC_TIME Name of the twelfth month
.It ABMON_1 LC_TIME Abbreviated name of the first month
.It ABMON_2 LC_TIME Abbreviated name of the second month
.It ABMON_3 LC_TIME Abbreviated name of the third month
.It ABMON_4 LC_TIME Abbreviated name of the fourth month
.It ABMON_5 LC_TIME Abbreviated name of the fifth month
.It ABMON_6 LC_TIME Abbreviated name of the sixth month
.It ABMON_7 LC_TIME Abbreviated name of the seventh month
.It ABMON_8 LC_TIME Abbreviated name of the eighth month
.It ABMON_9 LC_TIME Abbreviated name of the ninth month
.It ABMON_10 LC_TIME Abbreviated name of the tenth month
.It ABMON_11 LC_TIME Abbreviated name of the eleventh month
.It ABMON_12 LC_TIME Abbreviated name of the twelfth month
.It ERA LC_TIME Era description segments
.It ERA_D_FMT LC_TIME Era date format string
.It ERA_D_T_FMT LC_TIME Era date and time format string
.It ERA_T_FMT LC_TIME Era time format string
.It ALT_DIGITS LC_TIME Alternative symbols for digits
.It RADIXCHAR LC_NUMERIC Radix character
.It THOUSEP LC_NUMERIC Separator for thousands
.It YESEXPR LC_MESSAGES Affirmative response expression
.It NOEXPR LC_MESSAGES Negative response expression
.\".It CRNCYSTR LC_MONETARY Local currency symbol
.El
.Sh RETURN VALUES
.Fn nl_langinfo
returns a pointer to an empty string if
.Fa item
is invalid.
.Sh EXAMPLES
The following example uses
.Fn nl_langinfo
to obtain the date and time format for the current locale:
.Pp
.Bd -literal -offset indent
#include <time.h>
#include <langinfo.h>
#include <locale.h>
int main(void)
{
char datestring[100];
struct tm *tm;
time_t t;
char *ptr;
t = time(NULL);
tm = localtime(&t);
(void)setlocale(LC_ALL, "");
ptr = nl_langinfo(D_T_FMT);
strftime(datestring, sizeof(datestring), ptr, tm);
printf("%s\en", datestring);
return (0);
}
.Ed
.\" .Pp
.\" The following example uses
.\" .Fn nl_langinfo
.\" to obtain the setting of the currency symbol for the current locale:
.\" .Pp
.\" .Bd
.\" #include <langinfo.h>
.\" #include <locale.h>
.\" int main(void)
.\" {
.\" char *ptr;
.\" (void)setlocale(LC_ALL, "");
.\" ptr = nl_langinfo(CRNCYSTR);
.\" printf("%s", ptr);
.\" }
.\" .Ed
.Sh SEE ALSO
.Xr setlocale 3 ,
.Xr tm 3 ,
.Xr nls 7
.Sh STANDARDS
The
.Fn nl_langinfo
function conforms to
.St -p1003.1-2001 .
.Sh HISTORY
The
.Fn nl_langinfo
function appeared in
.Nx 1.0 .