Manpages

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 [AT] ccidnet.com>

[中 文 版 最 新 更 新 ]

2001/07/19

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

http://cmpp.linuxforum.net

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