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 <[email protected]>

[中文版最新更新]

2001/07/19

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

http://cmpp.linuxforum.net

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

Recommended readings

Pages related to locale you should read also: