340 likes | 514 Views
Linux 中文化架構與原理. 概說 名辭 原理 實作 其它. What is “ 中文化” 在基礎的英文版作業系統上做出修正的工作,來達到中文方面的需求! 就是在國際化( I18N) 的架構上加入中文區域化( L10N) 支援的工作!. (一)概說. 中文化方法. 外掛式中文系統 藉著 LD_PRELOAD 的機制來達成外掛式的中文環境 xa+cv (CLE), zhWinPro(TurboLinux) 撰寫獨立的中文程式 修改程式,直接讓每個程式都支援中文的使用 cpine , cxterm , emacs
E N D
Linux 中文化架構與原理 • 概說 • 名辭 • 原理 • 實作 • 其它
What is “中文化”在基礎的英文版作業系統上做出修正的工作,來達到中文方面的需求!就是在國際化(I18N)的架構上加入中文區域化(L10N)支援的工作! (一)概說
中文化方法 • 外掛式中文系統藉著 LD_PRELOAD 的機制來達成外掛式的中文環境xa+cv (CLE), zhWinPro(TurboLinux) • 撰寫獨立的中文程式修改程式,直接讓每個程式都支援中文的使用cpine, cxterm ,emacs • I18N & L10NI18N(程式國際化)L10N(資料基本化)
(二)名詞解釋 • I18N -- InternationalizatioN (國際化)系統底層的函式庫 ( libc 函式庫) 中實作一組標準的函式介面,可以讓程式存取各地區語系的種種資訊。libc 必須配合 locale 的支援,才能向 I18N 起步。
(二)名詞解釋 • L10N -- LocalizatioN (區域化)程式的輸出可以直接反應地方區域性的文化。包括字元內碼, 字型顯示, 日期時間, 訊息語言, 數字表示, 貨幣格式 .... 等。
(二)名詞解釋 • Locale Database (區域化環境資料庫)簡單說就是一組「地區語言」的資訊。當我們在 shell prompt 下,直接設好環境變數,我們就能馬上切換到那個語文了。在加入適當的 locale data 之後, libc 就能正確地處理它。
(二)名詞解釋 • Xi18n上層的函式庫 XFree86 libc。X Locale 必須架構在 libc locale 之上運作, 它裡頭除了定義一些字元對應,最重要的就是內碼與字型的對應。
字集 (Character Set)一組符號或文字的組合。 編碼 (Encoding)將這一組符號或文字以適當的方式編入位元組中,以便電腦能夠表示與儲存。 (二)名詞解釋
字集 • 一組符號或文字的組合 • 例:zh_TW.Big5zh_TW 繁體中文字集Big5 編碼
常用的編碼系統 • BIG5 • EUC-TW • BIG5HKSCS • GB2312 • GBK • GB18030 • Unicode • UTF-8
區域化資料庫名稱和語系設定 • 格式:<語系名>_<地區名> [.<編碼系統名>] • 釋義zh_TW.Big5zh 「中文語系」TW 「台灣地區」Big5 「使用 Big5 編碼系統」
繁體中文zh_TWzh_TW.Big5zh_HKzh_HK.BIG5HKSCS 簡體中文zhzh_CNzh_CN.GB2312zh_CN.GBKzh_CN.GB18030 環境變數
環境變數優先順序 • 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)
區域化環境資料庫 • locale database Localization Environment database
區域化環境類別 (categories) • LC_CTYPE: 字元分類及處理方式。 • LC_COLLATE: 字元順序與字串比較。 • LC_MESSAGES: 程式中用何種語言來 顯示訊息。 • LC_MONETARY: 貨幣顯式格式。 • LC_NUMERIC: 數字顯式格式。 • LC_TIME: 日期與時間的顯式格式。
區域化環境類別 (categories) • LC_ALL: 此類別可以一次設定以上所有 的類別。 • LANG: 作用類似 LC_ALL,也可用來一次設定所有的 locale 環境。
區域化環境類別 (categories) • Glibc-2.2 以後增加部份 • LC_NAME: • LC_ADDRESS: • LC_TELEPHONE: • LC_MEASUREMENT: • LC_IDENTIFICATION:
參考網站 • http://xcin.linux.org.tw/i18n/index.htmlhttp://xcin.linux.org.tw/i18n/intro.htmlhttp://xcin.linux.org.tw/i18n/slat/encoding.htmlhttp://xcin.linux.org.tw/i18n/slat/i18n.htmlhttp://xcin.linux.org.tw/i18n/slat/glibc.htmlhttp://xcin.linux.org.tw/i18n/slat/Xlib.html
(三)原理 • 基本架構libc + localedata + locale settings + Xi18n • 中文字型 • 中文輸入法程式 • 中文應用程式及其它
(三)原理 • What is “基本架構” • 系統底層 libc • 區域化資料庫 locale data • locale environment variable • X lib & XLC_LOCALE
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/
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/
Locale Data • glibc-2.0.7 ~ glibc-2.1.x • How to create?1. 安裝locale_zh rpm (CLE 0.9 or 0.9p1)2. 自行安裝,參考網址 http://xcin.linux.org.tw/i18n/i18n_tool/README.Big5.html
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.Big52. 自行安裝,參考網址http://www.candyz.idv.tw/docs/RH7+Chinese.txt
Locale 環境變數設定 • Default:C 或 POSIX ,訊息為英文顯示,字元內碼為 ASCII 。bash: export LC_ALL=POSIXtcsh: setenv LC_ALL=POSIX • 繁體中文:zh_TW.Big5 ,繁體中文訊息顯示,字元內碼為 Big5 。bash: export LANG=zh_TW.Big5tcsh: setenv LANG=zh_TW.Big5
X lib • XFree86 3.3.3 版以前無 zh_TW.Big5 的區域化環境資料,所以須再安裝 X 的中文區域化資料 • How to solve??1.patch Xlib2.i18n_tool 的 lcGen.so • 參考網址http://xcin.linux.org.tw/i18n/i18n_tool/README.old.Big5.html
X lib • XFree86 3.3.4 版以後已有zh_TW.Big5 的區域化環境資料,無須再安裝 X 的中文區域化資料 • 參考網址http://xcin.linux.org.tw/i18n/i18n_tool/README.Big5.html
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
XLC_LOCALE • XLC_LOCALE 格式XLC_FONTSET -- fs0, fs1XLC_LOCALE -- cs0, cs1 • locale.dir 定義方式zh_TW.big5/XLC_LOCALE: zh_TW.big5zh_TW.big5/XLC_LOCALE: zh_TW.Big5 • locale.alias 定義方式zh_TW: zh_TW.big5zh_TW.big5: zh_TW.big5
(四)實作 • 系統安裝(Slackware 8.0)六大步驟1.ADDSWAP2.TARGET3.SOURCE4.SELECT5.INSTALL6.CONFIGURE
(四)實作 • 中文套件 (CLE v1.0) 安裝1.中文訊息及顯示(字型)2.中文輸入(XCIN)3.中文列印(GS-CJK)4.中文處理(UTF-Conveter)5.其他 5-1.OpenOffice-1.0 5-2.StarSuite-6.0-beta 5-3.Xine
參考網址 • gs-cjk: http://www.gyve.org/gs-cjk/ • gs-cjk: http://www.aihara.co.jp/~taiji/tops/ • Adobe: http://partners.adobe.com/asn/developer/technotes/fonts.html • 文鼎 http://www.arphic.com.tw/
(五)其它 • 中文化相關議題 • CLE 未來發展 • Any Questions?? • Discuss!!
粽子節快樂 ^_^ 下次再會...