Provided by: manpages-zh_1.6.3.3-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

《中國linux論壇man手冊頁翻譯計劃》:

       http://cmpp.linuxforum.net

       本頁面中文版由中文 man 手冊頁計劃提供。
       中文 man 手冊頁計劃:https://github.com/man-pages-zh/manpages-zh