NL_LANGINFO(3)

NAME
nl_langinfo - language information

LIBRARY
libc

SYNOPSIS
#include <langinfo.h>
char *
nl_langinfo(nl_item item);
char *
nl_langinfo_l(nl_item item, locale_t loc);

DESCRIPTION
The nl_langinfo() function returns a pointer to a string containing information relevant to the particular language or cultural area defined in the program or thread's locale, or in the case of nl_langinfo_l(), the locale passed as the second argument.

Calls to setlocale() with a category corresponding to the category of item, or to the category LC_ALL, may overwrite the buffer pointed to by the return value.

The manifest constant names and values of item are defined in <langinfo.h>.

The following standard constants are recognized:
Constant | Category | Description
CODESET | LC_CTYPE | codeset name
D_T_FMT | LC_TIME | string for formatting date and time
D_FMT | LC_TIME | date format string
T_FMT | LC_TIME | time format string
T_FMT_AMPM | LC_TIME | a.m. or p.m. time format string
AM_STR | LC_TIME | ante-meridiem affix
PM_STR | LC_TIME | post-meridiem affix
DAY_1 | LC_TIME | name of the first day of the week
DAY_2 | LC_TIME | name of the second day of the week
DAY_3 | LC_TIME | name of the third day of the week
DAY_4 | LC_TIME | name of the fourth day of the week
DAY_5 | LC_TIME | name of the fifth day of the week
DAY_6 | LC_TIME | name of the sixth day of the week
DAY_7 | LC_TIME | name of the seventh day of the week
ABDAY_1 | LC_TIME | abbreviated name of the first day of the week
ABDAY_2 | LC_TIME | abbreviated name of the second day of the week
ABDAY_3 | LC_TIME | abbreviated name of the third day of the week
ABDAY_4 | LC_TIME | abbreviated name of the fourth day of the week
ABDAY_5 | LC_TIME | abbreviated name of the fifth day of the week
ABDAY_6 | LC_TIME | abbreviated name of the sixth day of the week
ABDAY_7 | LC_TIME | abbreviated name of the seventh day of the week
MON_1 | LC_TIME | name of the first month of the year
MON_2 | LC_TIME | name of the second month
MON_3 | LC_TIME | name of the third month
MON_4 | LC_TIME | name of the fourth month
MON_5 | LC_TIME | name of the fifth month
MON_6 | LC_TIME | name of the sixth month
MON_7 | LC_TIME | name of the seventh month
MON_8 | LC_TIME | name of the eighth month
MON_9 | LC_TIME | name of the ninth month
MON_10 | LC_TIME | name of the tenth month
MON_11 | LC_TIME | name of the eleventh month
MON_12 | LC_TIME | name of the twelfth month
ABMON_1 | LC_TIME | abbreviated name of the first month
ABMON_2 | LC_TIME | abbreviated name of the second month
ABMON_3 | LC_TIME | abbreviated name of the third month
ABMON_4 | LC_TIME | abbreviated name of the fourth month
ABMON_5 | LC_TIME | abbreviated name of the fifth month
ABMON_6 | LC_TIME | abbreviated name of the sixth month
ABMON_7 | LC_TIME | abbreviated name of the seventh month
ABMON_8 | LC_TIME | abbreviated name of the eighth month
ABMON_9 | LC_TIME | abbreviated name of the ninth month
ABMON_10 | LC_TIME | abbreviated name of the tenth month
ABMON_11 | LC_TIME | abbreviated name of the eleventh month
ABMON_12 | LC_TIME | abbreviated name of the twelfth month
ERA | LC_TIME | era description segments
ERA_D_FMT | LC_TIME | era date format string
ERA_D_T_FMT | LC_TIME | era date and time format string
ERA_T_FMT | LC_TIME | era time format string
ALT_DIGITS | LC_TIME | alternative symbols for digits
RADIXCHAR | LC_NUMERIC | radix character
THOUSEP | LC_NUMERIC | separator for thousands
YESEXPR | LC_MESSAGES | affirmative response extended regular
expression
NOEXPR | LC_MESSAGES | negative response extended regular expression
CRNCYSTR | LC_MONETARY | local currency symbol, preceded by '-' if the
symbol should appear before the value, '+' if the symbol should appear after the value, or '.' if the symbol should replace the radix character; if the local currency symbol is the empty string, implementations may return the empty string ("")

The following non-standard FreeBSD extensions are recognized:
Constant | Category | Description
D_MD_ORDER | LC_TIME | month/day order
ALTMON_1 | LC_TIME | standalone name of the first month
ALTMON_2 | LC_TIME | standalone name of the second month
ALTMON_3 | LC_TIME | standalone name of the third month
ALTMON_4 | LC_TIME | standalone name of the fourth month
ALTMON_5 | LC_TIME | standalone name of the fifth month
ALTMON_6 | LC_TIME | standalone name of the sixth month
ALTMON_7 | LC_TIME | standalone name of the seventh month
ALTMON_8 | LC_TIME | standalone name of the eighth month
ALTMON_9 | LC_TIME | standalone name of the ninth month
ALTMON_10 | LC_TIME | standalone name of the tenth month
ALTMON_11 | LC_TIME | standalone name of the eleventh month
ALTMON_12 | LC_TIME | standalone name of the twelfth month
YESSTR | LC_MESSAGES | affirmative response string
NOSTR | LC_MESSAGES | negative response string

RETURN VALUES
In a locale where langinfo data is not defined, nl_langinfo() returns a pointer to the corresponding string in the POSIX locale. nl_langinfo_l() returns the same values as nl_langinfo(). In all locales, nl_langinfo() returns a pointer to an empty string if item contains an invalid setting.

EXAMPLES
For example:

    nl_langinfo(ABDAY_1)

would return a pointer to the string "Dom" if the identified language was Portuguese, and "Sun" if the identified language was English.

SEE ALSO
setlocale(3)

STANDARDS
The nl_langinfo() function conforms to susv2. The nl_langinfo_l() function conforms to p1003.1-2008.

HISTORY
The nl_langinfo() function first appeared in FreeBSD 4.6.