Download presentation
Presentation is loading. Please wait.
1
Linux 中文化架構與原理 概說 名辭 原理 實作 其它
2
(一)概說 What is “中文化” 在基礎的英文版作業系統上做出修正的工作,來達到中文方面的需求! 就是在國際化(I18N)的架構上加入中文區域化(L10N)支援的工作!
3
中文化方法 外掛式中文系統 藉著 LD_PRELOAD 的機制來達成外掛式的中文環境 xa+cv (CLE), zhWinPro(TurboLinux) 撰寫獨立的中文程式 修改程式,直接讓每個程式都支援中文的使用 cpine, cxterm , emacs I18N & L10N I18N(程式國際化) L10N(資料基本化)
4
(二)名詞解釋 I18N -- InternationalizatioN (國際化) 系統底層的函式庫 ( libc 函式庫) 中實作一組標準的函式介面,可以讓程式存取各地區語系的種種資訊。 libc 必須配合 locale 的支援,才能向 I18N 起步。
5
(二)名詞解釋 L10N -- LocalizatioN (區域化) 程式的輸出可以直接反應地方區域性的文化。 包括字元內碼, 字型顯示, 日期時間, 訊息語言, 數字表示, 貨幣格式 .... 等。
6
(二)名詞解釋 Locale Database (區域化環境資料庫) 簡單說就是一組「地區語言」的資訊。 當我們在 shell prompt 下,直接設好環境變數,我們就能馬上切換到那個語文了。 在加入適當的 locale data 之後, libc 就能正確地處理它。
7
(二)名詞解釋 Xi18n 上層的函式庫 XFree86 libc。 X Locale 必須架構在 libc locale 之上運作, 它裡頭除了定義一些字元對應,最重要的就是內碼與字型的對應。
8
(二)名詞解釋 字集 (Character Set) 一組符號或文字的組合。
編碼 (Encoding) 將這一組符號或文字以適當的方式編入位元組中,以便電腦能夠表示與儲存。
9
字集 一組符號或文字的組合 例: zh_TW.Big5 zh_TW 繁體中文字集 Big 編碼
10
常用的編碼系統 BIG5 EUC-TW BIG5HKSCS GB2312 GBK GB18030 Unicode UTF-8
11
區域化資料庫名稱和語系設定 格式: <語系名>_<地區名> [.<編碼系統名>]
格式: <語系名>_<地區名> [.<編碼系統名>] 釋義 zh_TW.Big5 zh 「中文語系」 TW 「台灣地區」 Big5 「使用 Big5 編碼系統」
12
環境變數 繁體中文 zh_TW zh_TW.Big5 zh_HK zh_HK.BIG5HKSCS
簡體中文 zh zh_CN zh_CN.GB2312 zh_CN.GBK zh_CN.GB18030
13
環境變數優先順序 LC_ALL > LC_CTYPE > LANG
例 (1) export LANG=zh_TW.Big5 (2) export LC_CTYPE=zh_TW.Big5 (3) export LC_ALL=zh_TW.Big5 順序: (3) > (2)> (1)
14
區域化環境資料庫 locale database Localization Environment database
15
區域化環境類別 (categories) LC_CTYPE: 字元分類及處理方式。 LC_COLLATE: 字元順序與字串比較。
LC_MESSAGES: 程式中用何種語言來 顯示訊息。 LC_MONETARY: 貨幣顯式格式。 LC_NUMERIC: 數字顯式格式。 LC_TIME: 日期與時間的顯式格式。
16
區域化環境類別 (categories) LC_ALL: 此類別可以一次設定以上所有 的類別。
LANG: 作用類似 LC_ALL,也可用來一次設定所有的 locale 環境。
17
區域化環境類別 (categories) Glibc-2.2 以後增加部份 LC_NAME: LC_ADDRESS:
LC_TELEPHONE: LC_MEASUREMENT: LC_IDENTIFICATION:
18
參考網站
19
(三)原理 基本架構 libc + localedata + locale settings + Xi18n 中文字型 中文輸入法程式
中文應用程式及其它
20
(三)原理 What is “基本架構” 系統底層 libc 區域化資料庫 locale data
locale environment variable X lib & XLC_LOCALE
21
Glibc glibc-2.0.7 ~ glibc-2.1.x Locale name path /usr/share/locale
Locale Data /usr/share/locale/zh_CN.GB2312/ /usr/share/locale/zh_TW.Big5/
22
Glibc glibc-2.1.9x ~ glibc-2.2.x Locale name path /usr/lib/locale
Locale Data /usr/lib/locale/zh_CN/ /usr/lib/locale/zh_TW/ /usr/share/locale/zh_TW/LC_MESSAGES/ /usr/share/locale/zh_TW.Big5/LC_MESSAGES/
23
Locale Data glibc-2.0.7 ~ glibc-2.1.x
How to create? 1. 安裝 locale_zh rpm (CLE 0.9 or 0.9p1) 2. 自行安裝,參考網址
24
Locale Data glibc-2.1.9x ~ glibc-2.2.x
How to create? 1. 已內建, 自行連結即可 ln -sf /usr/lib/locale/zh_TW /usr/lib/locale/zh_TW.Big5 2. 自行安裝,參考網址
25
Locale 環境變數設定 Default: C 或 POSIX , 訊息為英文顯示,字元內碼為 ASCII 。 bash: export LC_ALL=POSIX tcsh: setenv LC_ALL=POSIX 繁體中文: zh_TW.Big5 ,繁體中文訊息顯示,字元內碼為 Big5 。 bash: export LANG=zh_TW.Big5 tcsh: setenv LANG=zh_TW.Big5
26
X lib XFree86 3.3.3 版以前 無 zh_TW.Big5 的區域化環境資料,所以須再安裝 X 的中文區域化資料
How to solve?? 1.patch Xlib 2.i18n_tool 的 lcGen.so 參考網址
27
X lib XFree86 3.3.4 版以後 已有 zh_TW.Big5 的區域化環境資料,無須再安裝 X 的中文區域化資料
參考網址
28
X Locale Data X Locale Path /usr/X11R6/lib/X11/locale/zh /usr/X11R6/lib/X11/locale/zh_CN /usr/X11R6/lib/X11/locale/zh_TW.big5 /usr/X11R6/lib/X11/locale/locale.dir /usr/X11R6/lib/X11/locale/locale.alias XLC_LOCALE
29
XLC_LOCALE XLC_LOCALE 格式 XLC_FONTSET -- fs0, fs1 XLC_LOCALE -- cs0, cs1 locale.dir 定義方式 zh_TW.big5/XLC_LOCALE: zh_TW.big5 zh_TW.big5/XLC_LOCALE: zh_TW.Big5 locale.alias 定義方式 zh_TW: zh_TW.big5 zh_TW.big5: zh_TW.big5
30
(四)實作 系統安裝(Slackware 8.0) 六大步驟 1.ADDSWAP 2.TARGET 3.SOURCE 4.SELECT 5.INSTALL 6.CONFIGURE
31
(四)實作 中文套件 (CLE v1.0) 安裝 1.中文訊息及顯示(字型) 2.中文輸入(XCIN) 3.中文列印(GS-CJK) 4.中文處理(UTF-Conveter) 5.其他 OpenOffice StarSuite-6.0-beta Xine
32
參考網址 gs-cjk: http://www.gyve.org/gs-cjk/
Adobe: 文鼎
33
(五)其它 中文化相關議題 CLE 未來發展 Any Questions?? Discuss!!
34
粽子節快樂 ^_^ 下次再會...
Similar presentations