*nix Documentation Project
·  Home
 +   man pages
·  Linux HOWTOs
·  FreeBSD Tips
·  *niX Forums

  man pages->Linux man pages -> locale (7)              



NAME    [Toc]    [Back]

       locale - Description of multi-language support

SYNOPSIS    [Toc]    [Back]

       #include <locale.h>

DESCRIPTION    [Toc]    [Back]

       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.

       The header <locale.h> declares data types, functions and  macros  which
       are useful in this task.

       The  functions  it  declares are setlocale() to set the current locale,
       and localeconv() to get information about number formatting.

       There are different categories for local information  a	program  might
       need; they are declared as macros.  Using them as the first argument to
       the setlocale() function, it is possible to set one  of	these  to  the
       desired locale:

       LC_COLLATE    [Toc]    [Back]
	      This  is used to change the behaviour of the functions strcoll()
	      and strxfrm(), which are used to compare strings	in  the  local
	      alphabet.  For example, the German sharp s is sorted as "ss".

       LC_CTYPE    [Toc]    [Back]
	      This changes the behaviour of the character handling and classification
 functions, such as isupper()  and  toupper(),  and  the
	      multi-byte character functions such as mblen() or wctomb().

       LC_MONETARY    [Toc]    [Back]
	      changes the information returned by 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 strfmon().

       LC_MESSAGES    [Toc]    [Back]
	      changes the language messages are displayed in and how an affirmative
  or  negative  answer looks like.	The GNU C-library contains
 the rpmatch() function to ease the use of  these  information.

       LC_NUMERIC    [Toc]    [Back]
	      changes  the information used by the printf() and scanf() family
	      of functions, when they are advised to use the  locale-settings.
	      This  information  can  also be read with the localeconv() function.

       LC_TIME    [Toc]    [Back]
	      changes the behaviour of the 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.

       LC_ALL All of the above.

       If the second argument to setlocale() is  empty	string,  "",  for  the
       default locale, it is determined using the following steps:

       1.     If there is a non-null environment variable LC_ALL, the value of
	      LC_ALL is used.

       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

       3.     If there is a non-null environment variable LANG, the  value  of
	      LANG is used.

       Values  about  local  numeric  formatting is made available in a struct
       lconv returned by the localeconv() function, which  has	the  following
       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 ' '.  */
	 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;

CONFORMS TO    [Toc]    [Back]


SEE ALSO    [Toc]    [Back]

       setlocale(3), localeconv(3), locale(1), localedef(1), rpmatch(3), strf-
       mon(3), strcoll(3), strxfrm(3), strftime(3)

Linux				  1993-04-24			     LOCALE(7)
[ Back ]
 Similar pages
Name OS Title
geocustoms HP-UX configure system language on multi-language systems
pcfof Tru64 Generic print filter for ANSI, PCL, and multi-language PostScript printers
ipsend FreeBSD IP packet description language
hunt NetBSD a multi-player multi-terminal game
hunt OpenBSD a multi-player multi-terminal game
Norwegian Tru64 Introduction to Norwegian language support
Lithuanian Tru64 Introduction to Lithuanian language support
catalan Tru64 Introduction to Catalan language support
Portuguese Tru64 Introduction to Portuguese language support
Polish Tru64 Introduction to Polish language support
Copyright © 2004-2005 DeniX Solutions SRL
newsletter delivery service