diff options
Diffstat (limited to 'man7/locale.7')
-rw-r--r-- | man7/locale.7 | 204 |
1 files changed, 204 insertions, 0 deletions
diff --git a/man7/locale.7 b/man7/locale.7 new file mode 100644 index 000000000..c564a8ebe --- /dev/null +++ b/man7/locale.7 @@ -0,0 +1,204 @@ +.\" (c) 1993 by Thomas Koenig (ig25@rz.uni-karlsruhe.de) +.\" +.\" Permission is granted to make and distribute verbatim copies of this +.\" manual provided the copyright notice and this permission notice are +.\" preserved on all copies. +.\" +.\" Permission is granted to copy and distribute modified versions of this +.\" manual under the conditions for verbatim copying, provided that the +.\" entire resulting derived work is distributed under the terms of a +.\" permission notice identical to this one. +.\" +.\" Since the Linux kernel and libraries are constantly changing, this +.\" manual page may be incorrect or out-of-date. The author(s) assume no +.\" responsibility for errors or omissions, or for damages resulting from +.\" the use of the information contained herein. The author(s) may not +.\" have taken the same level of care in the production of this manual, +.\" which is licensed free of charge, as they might when working +.\" professionally. +.\" +.\" Formatted or processed versions of this manual, if unaccompanied by +.\" the source, must acknowledge the copyright and authors of this work. +.\" +.\" Modified Sat Jul 24 17:28:34 1993 by Rik Faith <faith@cs.unc.edu> +.\" Modified Sun Jun 01 17:16:34 1997 by Jochen Hein +.\" <jochen.hein@delphi.central.de> +.\" Modified Thu Apr 25 00:43:19 2002 by Bruno Haible <bruno@clisp.org> +.\" +.TH LOCALE 7 1993-04-24 "Linux" "Linux Programmer's Manual" +.SH NAME +locale \- Description of multi-language support +.SH SYNOPSIS +.nf +.B #include <locale.h> +.fi +.SH DESCRIPTION +A locale is a set of language and cultural rules. These cover aspects +such as language for messages, different character sets, lexigraphic +conventions, etc. A program needs to be able to determine its locale +and act accordingly to be portable to different cultures. +.PP +The header +.B <locale.h> +declares data types, functions and macros which are useful in this +task. +.PP +The functions it declares are +.B setlocale() +to set the current locale, and +.B localeconv() +to get information about number formatting. +.PP +There are different categories for local information a program might +need; they are declared as macros. Using them as the first argument +to the +.B setlocale() +function, it is possible to set one of these to the desired locale: +.TP +.B LC_COLLATE +This is used to change the behaviour of the functions +.B strcoll() +and +.BR strxfrm() , +which are used to compare strings in the local alphabet. For example, +the German sharp s is sorted as "ss". +.TP +.B LC_CTYPE +This changes the behaviour of the character handling and +classification functions, such as +.B isupper() +and +.BR toupper() , +and the multi\-byte character functions such as +.B mblen() +or +.BR wctomb() . +.TP +.B LC_MONETARY +changes the information returned by +.B localeconv() +which describes the way numbers are usually printed, with details such +as decimal point versus decimal comma. This information is internally +used by the function +.BR strfmon() . +.TP +.B LC_MESSAGES +changes the language messages are displayed in and how an affirmative or +negative answer looks like. The GNU C-library contains the +.BR gettext() , +.BR ngettext() , +and +.B rpmatch() +functions to ease the use of these information. The GNU gettext family of +functions also obey the environment variable +.BR LANGUAGE . +.TP +.B LC_NUMERIC +changes the information used by the +.B printf() +and +.B scanf() +family of functions, when they are advised to use the +locale-settings. This information can also be read with the +.B localeconv() +function. +.TP +.B LC_TIME +changes the behaviour of the +.B strftime() +function to display the current time in a locally acceptable form; for +example, most of Europe uses a 24\-hour clock vs. the US' 12\-hour +clock. +.TP +.B LC_ALL +All of the above. +.PP +If the second argument to +.B setlocale() +is empty string, +.BR """""" , +for the default locale, it is determined using the following steps: +.IP 1. +If there is a non-null environment variable +.BR LC_ALL , +the value of +.B LC_ALL +is used. +.IP 2. +If an environment variable with the same name as one of the categories +above exists and is non-null, its value is used for that category. +.IP 3. +If there is a non-null environment variable +.BR LANG , +the value of +.B LANG +is used. +.PP +Values about local numeric formatting is made available in a +.B struct lconv +returned by the +.B localeconv() +function, which has the following declaration: +.nf +struct lconv +{ + /* Numeric (non-monetary) information. */ + + char *decimal_point; /* Decimal point character. */ + char *thousands_sep; /* Thousands separator. */ + /* Each element is the number of digits in each group; + elements with higher indices are farther left. + An element with value CHAR_MAX means that no further grouping is done. + An element with value 0 means that the previous element is used + for all groups farther left. */ + char *grouping; + + /* Monetary information. */ + + /* First three chars are a currency symbol from ISO 4217. + Fourth char is the separator. Fifth char is '\0'. */ + char *int_curr_symbol; + char *currency_symbol; /* Local currency symbol. */ + char *mon_decimal_point; /* Decimal point character. */ + char *mon_thousands_sep; /* Thousands separator. */ + char *mon_grouping; /* Like `grouping' element (above). */ + char *positive_sign; /* Sign for positive values. */ + char *negative_sign; /* Sign for negative values. */ + char int_frac_digits; /* Int'l fractional digits. */ + char frac_digits; /* Local fractional digits. */ + /* 1 if currency_symbol precedes a positive value, 0 if succeeds. */ + char p_cs_precedes; + /* 1 if a space separates currency_symbol from a positive value. */ + char p_sep_by_space; + /* 1 if currency_symbol precedes a negative value, 0 if succeeds. */ + char n_cs_precedes; + /* 1 if a space separates currency_symbol from a negative value. */ + char n_sep_by_space; + /* Positive and negative sign positions: + 0 Parentheses surround the quantity and currency_symbol. + 1 The sign string precedes the quantity and currency_symbol. + 2 The sign string succeeds the quantity and currency_symbol. + 3 The sign string immediately precedes the currency_symbol. + 4 The sign string immediately succeeds the currency_symbol. */ + char p_sign_posn; + char n_sign_posn; +}; +.fi +.SH "CONFORMS TO" +.nf +POSIX.1 +.fi +The GNU gettext functions are specified in LI18NUX2000. +.SH "SEE ALSO" +.BR locale (1), +.BR localedef (1), +.BR gettext (3), +.BR localeconv (3), +.BR ngettext (3), +.BR nl_langinfo (3), +.BR rpmatch (3), +.BR setlocale (3), +.BR strcoll (3), +.BR strfmon (3), +.BR strftime (3), +.BR strxfrm (3) |