Man page - locale(7)

Packages contains this manual

Available languages:

en fr es it pl ja ru ro zh_TW zh_CN de

Manual

LOCALE

NAME(名 稱 )
SYNOPSIS(總 覽 )
DESCRIPTION(描 述 )
CONFORMS TO(遵 循 規 則 )
SEE ALSO(另 見 )
[中 文 版 維 護 人 ]
[中 文 版 最 新 更 新 ]
《 中 國 linux論 壇 man手 冊 頁 翻 譯 計 劃 》 :


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