| Web Hosting | Slackware Forum | Linux Man Pages |

man logo Linux Commands


locale

NAME

       locale - Description of multi-language support

SYNOPSIS

       #include <locale.h>

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  accord-
       ingly 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  cur-
       rent  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
              This  is  used to change the behaviour of the func-
              tions strcoll() and strxfrm(), which  are  used  to
              compare  strings  in the local alphabet.  For exam-
              ple, the German sharp s is sorted as "ss".
       L_CTYPE
              This changes the behaviour of  the  character  han-
              dling  and  classification functions, such as isup-
              per() and toupper(), and the  multi-byte  character
              functions such as mblen() or wctomb().
       LC_MONETARY
              changes  the  behaviour of the information returned
              by localeconv() which describes the way numbers are
              usually printed, with details such as decimal point
              versus decimal comma.
       LC_MESSAGES
              changes the language messages are displayed in.
       LC_TIME
              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 follow-
       ing 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 category.
       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 declaration:
       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

       POSIX.1
       At the moment, the only locales supported by Linux are the
       portable "C" , "POSIX"  (identical  to  the  "C"  locale),
       "ISO-8859-1"  (european  latin-1)  and  "KOI-8"  (russian)
       locales.

SEE ALSO

       setlocale(3), localeconf(3), locale(1), localedef(1)



| Web Design | Web Hosting | Linux Forum | Brew Beer