描述
地域
定義文件含有 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 (Hein@Student.TU-Clausthal.de)
另見
《Linuxfourm
中文MAN-PAGE計劃》
http://cmpp.linuxforum.net
跋
本頁面中文版由中文
man 手冊頁計劃提供。
中文 man
手冊頁計劃:https://github.com/man-pages-zh/manpages-zh