locale -
地域定義檔案的描述
地域 定義檔案含有
localedef(1)
命令所需的全部資訊.
定義檔案由幾個小節組成,
一個小節詳細地描述地域的一個範疇.
地域定義檔案以一個包含有如下關鍵字的檔案頭開頭:
- <escape_char>
- 其後所跟字元在檔案的其餘部分被特別解釋為逃逸字元,
逃逸字元預設為反斜槓(
\ ).
- <comment_char>
- 後面所跟字元在檔案的其餘部分要特別解釋為註釋符,
注
釋符預設為數字符號(
# ).
地域定義分成幾個部分,
每個部分對應一個地域範疇,
每個部分都
可以複製別的地域範疇的內容,
也可以自己重新新定義一個,
如果
一個範疇想要複製別的範疇,
則在該範疇的定義裡唯一有效的關鍵
字是
copy,
其後跟隨要複製的地域範疇的名字.
LC_CTYPE
範疇的定義以第一欄的
LC_CTYPE 字串開始.
可以有如下關鍵字:
- upper
- 跟隨一個大寫字母列表.
字母 A 到 Z
自動包括. 被說明 為
cntrl, digit, punct, 或 space
的字元則不允許包括.
- lower
- 跟隨一個小寫字母列表.
字母 a 到 z
自動包括. 同樣也
不允許如下字元: cntrl, digit,
punct, 或者 space.
- alpha
- 跟隨一個字母列表.
所有被說明為 upper 或
lower 的字元
都自動包括.
但如下字元仍然不允許:
cntrl, digit, punct, 或 space
- digit
- 後面跟隨的字元被劃分為數字.
只允許數字 0 到 9 ,
並且
預設它們也被包括進來了.
- space
- 跟隨一列被定義為空格的字元.
那些被說明為 upper, lower, alpha,
digit, graph, 或者 xdigit
的字元是不被允許的.
而字元 <space>, <form-feed>,
<newline>, <carriage-return>, <tab>,
以及 <vertical-tab>
則被自動包括進來.
- cntrl
- 跟隨一個控制字元列表.那些被說明為
upper, lower, alpha, digit, punct, graph, print 或者
xdigit
的字元不允許包括.
- punct
- 跟隨一個標點符號的列表.
不允許包括那些被說明為
upper, lower, alpha, digit, cntrl, xdigit 或者
<space> 字元.
- graph
- 跟隨一個可列印字元列表,
但不包括空格符
<space>. 被 說明為 upper, lower,
alpha, digit, xdigit 或 punct
的字元自動包括,
而被說明為 cntrl
的字元則不允許包括.
- print
- 跟隨一個可列印字元列表,
包括空格符 <space>.
被定義 為 upper, lower, alpha, digit, xdigit,
punct 或 <space>
的字元自動包括.
而被說明為 cntrl
的字元則 不被允許.
- xdigit
- 跟隨一個被歸類為十六進位制數的字元的列表.
十進位制數字必
須被包括,
其後還有一個或多個的升序順序的六字符集,
缺 省包括下列字元:
0 到 9, a 到 f, A 到
F.
- blank
- 跟隨一個被歸類為
blank 字元的列表.
自動包括的字元有
<space> 和 <tab>.
- toupper
- 跟隨一個從小寫字母到大寫字母的對映列表.
每個對映都是
一個小寫-大寫字母對,
中間以 , 分隔,
並且用圓括號括起 來.
各個對映之間則用分號分隔.
- tolower
- 跟隨一個從大寫字母到小寫字母的對映列表.
如果沒有出現
關鍵字tolower的話,
就使用它的逆toupper.
LC_CTYPE 定義以字串
END LC_CYTPE
結束.
LC_COLLATE
範疇定義了校對字元的規則.
由於libc的侷限性, 所以
並沒有實現所有的POSIX選項.
該定義以第一欄的字串
LC_COLLATE 為開始標記.
允許如下關鍵字:
- collating-element
-
- collating-symbol
-
order-definition以下列行開始:
- order_start
後隨一個如下關鍵字的列表:
forward, backward 或者
position.
順序定義由一些描述順序的行組成,
並以如下關鍵字終止,
- order_end.
要得到更多細節請查閱在
/usr/lib/nls/src 裡的原始碼.
請注意 幾個例子:
POSIX,
Example 以及
Example2.
LC_COLLATE 的定義以字串
END
LC_COLLATE 結束.
該定義以第一欄裡的字串
LC_MONETARY 開始.
可以有如下關鍵字:
- int_curr_symbol
- 其後跟隨國際貨幣符號.
必須是一個四字元的字串,
包含 有ISO
4217標準所定義的國際貨幣符號(三字元)以及一個
分隔符號.
- currency_symbol
- 其後跟隨當地的貨幣符號.
- mon_decimal_point
- 其後跟隨一個字串,
該字串在格式化貨幣的數額時用做
十進位制定界符號.
- mon_thousands_sep
- 其後跟隨一個字串,
該字串在格式化貨幣的數額時用做
組分隔符號.
- mon_grouping
- 其後跟隨一個字串,
該字串描述貨幣數額格式.
- positive_sign
- 其後跟隨一個字串,
該字串被用於指示貨幣數額的正號.
- negative_sign
- 其後跟隨一個字串,
該字串被用於指示貨幣數額的負號.
- int_frac_digits
- 其後跟隨貨幣數額的小數部分的數字位數,
該數在用 int_curr_symbol
格式化貨幣數額時要用到.
- frac_digits
- 其後跟隨貨幣數額的小數部分的數字位數,
該數在用 currency_symbol
格式化貨幣數額時要用到.
- p_cs_precedes
- 其後跟隨一個整數,
如果 currency_symbol 或者
int_curr_symbol
要置於格式化的貨幣數額前面,
該整數就為 1,
否則為 0.
- p_sep_by_space
- 跟隨一個整數,
- 0
- 表明在貨幣符號和數額之間不列印空格,
- 1
- 表明在貨幣符號和數額之間列印一個空格,
- 2
- 的意思是如果貨幣符號與數額的正號相鄰的話,
其間列印一個空格,
- n_cs_precedes
- 0
- -
負號跟隨於數額,
- 1
- -
負號領先於數額,
- n_sep_by_space
- 一個整數,設為 0
要求在 currency_symbol 或者
int_curr_symbol
和一個負的貨幣數額之間沒有空格分隔,
設為 1
則要求在兩者之間有一個空格分隔,
而設為 2
則要求在貨幣符號和負號之間有一個空格分隔,
如果這兩者相鄰的話,
- p_sign_posn
- 0
- 意思是要用括號括住
currency_symbol 或 int_curr_symbol.
和貨幣數額,
- 1
- 正號要領先於貨幣數額和貨幣符號
currency_symbol 或 int_curr_symbol.
- 2
- 正號跟在貨幣數額和貨幣符號
currency_symbol 或 int_curr_symbol
的後面.
- 3
- 正號領先於貨幣符號
currency_symbol 或 int_curr_symbol.
- 4
- 正號跟在貨幣符號
currency_symbol 或 int_curr_symbol
的後面.
- n_sign_posn
- 0
- 意思是要用括號括住
currency_symbol 或 int_curr_symbol.
和貨幣數額,
- 1
- 負號領先於貨幣數額及貨幣符號
currency_symbol 或 int_curr_symbol.
- 2
- 負號跟在貨幣數量及貨幣符號
currency_symbol 或 int_curr_symbol
的後面.
- 3
- 負號領先於貨幣符號
currency_symbol 或 int_curr_symbol.
- 4
- 負號跟在貨幣符號
currency_symbol 或 int_curr_symbol
的後面.
LC_MONETARY 定義以字串
END
LC_MONETARY. 結束,
該定義以第一欄的字串
LC_NUMERIC 開始.
可有如下關鍵字:
- decimal_point
- 跟隨一個字串,
該串在格式化數量值時用作十進位制定界符,
- thousands_sep
- 跟隨一個字串,
該串在格式化數量值時用作群組分隔符,
- grouping
- 跟隨一個字串,
該串描述數量值的格式化,
LC_NUMERIC 定義以字串
END
LC_NUMERIC. 結束,
該定義以第一欄的字串
LC_TIME 開始,
可以有如下關鍵字:
- abday
- 跟隨一個簡寫星期名列表,
該列表以Sunday或其譯名開頭,
- day
- 跟隨一個星期名列表,
該列表以Sunday開頭,
- abmon
- 跟隨一個簡寫的月名列表,
- mon
- 跟隨一個月名列表,
- am_pm
- 對 am 和 pm
的適當表示,
- d_t_fmt
- 適當的日期加時間格式,
- d_fmt
- 適當的日期格式,
- t_fmt
- 適當的時間格式,
- t_fmt_ampm
- 適當的時間格式(12小時格式),
LC_TIME 定義以字串
END LC_TIME.
結束,
該定義以第一欄的字串
LC_MESSAGES 開始,
可以有如下關鍵字:
- yesexpr
- 跟隨一個正則表示式,
描述可能的yes-responses.
- noexpr
- 跟隨一個正則表示式,
描述可能的no-responses.
LC_MESSAGES 定義以字串
END
LC_MESSAGES 結束.
要得到更多細節,
請查閱POSIX.2標準.
/usr/lib/locale/ -
當前地域範疇設定資料庫
/usr/lib/nls/charmap/* - 字元對映檔案
該手冊頁並不完全.
Jochen Hein (
[email protected])
POSIX.2
setlocale(3),
localeconv(3),
charmap(5),
locale(1),
localedef(1)
<email>
2001/7/15
http://cmpp.linuxforum.net
本頁面中文版由中文 man
手冊頁計劃提供。
中文 man 手冊頁計劃:
https://github.com/man-pages-zh/manpages-zh