Provided by: manpages-zh_1.5.1-2_all bug

NAME()
       locale - 描述多语言支持

SYNOPSIS()
       #include <locale.h>

DESCRIPTION()
       locale    就是一系列语言文化规则.     它包括如下一些方面:   讯息的语言,
       不同字符设置,    文字惯例,     等等.      程序需要能够判断其     locale
       并根据适合于不同文化的要求来运行.

       头文件 <locale.h> 声明了用于该项作业中的数据类型,函数和宏.

       它声明的函数有:    setlocale()    用来设置当前   locale,   localeconv()
       用来获得数字格式方面的信息.

       程序可能需要的本地化信息会有不同的种类; 它们都以宏的方式声明 把它们当做
       setlocale() 的第一个参数来用, 就可以把其中一个设置为需要的 locale:

       LC_COLLATE
              这用来修改函数 strcoll()strxfrm() 的执行方式, 其中 strxfrm()
              函数用来以本地化字母表进行字符串比较.   例如,   德国升半音的   s
              排序为 "ss".

       LC_CTYPE
              修改字符处理分类函数如   isupper()toupper()  的执行方式,
              还修改多字节字符函数如 mblen() 或者 wctomb() 的执行方式.

       LC_MONETARY
              修改由  localeconv()  返回的信息,  这些信息描述了数字,  以及诸如
              小数点和千进位逗号之类输出的常见格式的细节.       这些信息由函数
              strfmon() 在内部调用.

       LC_MESSAGES
              修改显示的语言信息以及正值和负值的表达方式.  GNU  C-library包含:
              rpmatch() 函数用于方便地使用这些信息.

       LC_NUMERIC
              在考虑使用    locale    设置时,修改    printf()scanf()
              函数族使用的信息.该信息也可以由 localeconv() 函数读取.

       LC_TIME
              修改   strftime()    函数的执行方式以显示适于当地格式的当前时间;
              例如,欧洲的绝大部分地区使用的是  24  小时的时钟,  而美国则是  12
              小时的时钟.

       LC_ALL 上述所有的.

       如果       setlocale()       的第二个参数为空,        则设置        "",
       为默认的locale,它通过以下几步来确定:

       1.     如果有非空的环境变量 LC_ALL, 则使用 LC_ALL 的值.

       2.     如果存在一个与上述列出的种类同名的环境变量并且其不为空,
              则使用该分类的值.

       3.     如果有非空的环境变量 LANG, 则使用 LANG 的值.

       关于本地数字格式的值用于由  localeconv()  函数返回的  struct  lconv   ,
       其有以下声明:
       struct lconv
       {
       /* 数码(非货币形式)信息. */

       char *decimal_point; /* 小数点字符. */
       char *thousands_sep; /* 千数的分隔符. */
       /* 每个元素就是每组的阿啦;指数越高的元素在越左边.一个值为CHAR_MAX的元素表示不需继续
       分组了.一个值为0的元素表示前面的字符用于所有更左边的组. */
       char *grouping;

       /* 货币信息. */

       /* 前三个字符是ISO 4217定义的流通符号.
       第四个字符是分隔符. 第五个字符是' '. */
       char *int_curr_symbol;
       char *currency_symbol; /* 当地货币符号. */
       char *mon_decimal_point; /* 小数点字符. */
       char *mon_thousands_sep; /* 千数的分隔符. */
       char *mon_grouping; /* 如前述的'分组'元素. */
       char *positive_sign; /* 正值符号. */
       char *negative_sign; /* 负值符号. */
       char int_frac_digits; /* 国际通用的数字. */
       char frac_digits; /* 本地使用的数字. */
       /* 如果currency_symbol后跟着一个正值则为1,如果顺序相反为0. */
       char p_cs_precedes;
       /* 如果在currency_symbol和正值之间是一个空格则为1. */
       char p_sep_by_space;
       /* 如果currency_symbol后跟着一个负值则为1,如果顺序相反为0. */
       char n_cs_precedes;
       /* 如果在currency_symbol和正值之间是一个空格则为1. */
       char n_sep_by_space;
       /* 正值和负值符号位置:
       数量值和currency_symbol在圆括号内则为0.
       符号字符串先于数量值和currency_symbol则为1.
       符号字符串在数量值和currency_symbol之后则为2.
       符号字符串后紧跟数量值和currency_symbol则为3.
       符号字符串紧跟在数量值和currency_symbol之后则为4. */
       char p_sign_posn;
       char n_sign_posn;
       };

CONFORMS TO()
       POSIX.1

SEE ALSO()
       setlocale(3),   localeconv(3),   locale(1),  localedef(1),  rpmatch(3),
       strfmon(3), strcoll(3), strxfrm(3), strftime(3)

[riser <boomer@ccidnet.com>

[2001/07/19

linuxan:
       http://cmpp.linuxforum.net