linux 中文化架構與原理

34
Linux 中中中中中中中中 • 中中 • 中中 • 中中 • 中中 • 中中

Upload: hewitt

Post on 02-Feb-2016

75 views

Category:

Documents


0 download

DESCRIPTION

Linux 中文化架構與原理. 概說 名辭 原理 實作 其它. What is “ 中文化” 在基礎的英文版作業系統上做出修正的工作,來達到中文方面的需求! 就是在國際化( I18N) 的架構上加入中文區域化( L10N) 支援的工作!. (一)概說. 中文化方法. 外掛式中文系統 藉著 LD_PRELOAD 的機制來達成外掛式的中文環境 xa+cv (CLE), zhWinPro(TurboLinux) 撰寫獨立的中文程式 修改程式,直接讓每個程式都支援中文的使用 cpine , cxterm , emacs - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Linux  中文化架構與原理

Linux 中文化架構與原理• 概說• 名辭• 原理• 實作• 其它

Page 2: Linux  中文化架構與原理

( 一 ) 概說• What is “ 中文化”

在基礎的英文版作業系統上做出修正的工作,來達到中文方面的需求 !

就是在國際化 (I18N) 的架構上加入中文區域化 (L10N) 支援的工作 !

Page 3: Linux  中文化架構與原理

中文化方法• 外掛式中文系統

藉著 LD_PRELOAD 的機制來達成外掛式的中文環境 xa+cv (CLE), zhWinPro(TurboLinux)

• 撰寫獨立的中文程式 修改程式,直接讓每個程式都支援中文的使用 cpine, cxterm , emacs

• I18N & L10N I18N( 程式國際化 ) L10N( 資料基本化 )

Page 4: Linux  中文化架構與原理

( 二 ) 名詞解釋• I18N -- InternationalizatioN ( 國際化 )

系統底層的函式庫 ( libc 函式庫 ) 中實作一組標準的函式介面,可以讓程式存取各地區語系的種種資訊。

libc 必須配合 locale 的支援,才能向 I18N 起步。

Page 5: Linux  中文化架構與原理

( 二 ) 名詞解釋• L10N -- LocalizatioN ( 區域化 )

程式的輸出可以直接反應地方區域性的文化。

包括字元內碼, 字型顯示, 日期時間, 訊息語言, 數字表示, 貨幣格式 .... 等。

Page 6: Linux  中文化架構與原理

( 二 ) 名詞解釋• Locale Database ( 區域化環境資料庫 )

簡單說就是一組「地區語言」的資訊。

當我們在 shell prompt 下,直接設好環境變數,我們就能馬上切換到那個語文了。

在加入適當的 locale data 之後, libc 就能正確地處理它。

Page 7: Linux  中文化架構與原理

( 二 ) 名詞解釋• Xi18n

上層的函式庫 XFree86 libc 。 X Locale 必須架構在 libc locale 之上運作, 它裡頭除了定義一些字元對應,最重要的就是內碼與字型的對應。

Page 8: Linux  中文化架構與原理

( 二 ) 名詞解釋• 字集 (Character Set)

一組符號或文字的組合。

• 編碼 (Encoding)

將這一組符號或文字以適當的方式編入位元組中,以便電腦能夠表示與儲存。

Page 9: Linux  中文化架構與原理

字集• 一組符號或文字的組合• 例 :

zh_TW.Big5

zh_TW 繁體中文字集Big5 編碼

Page 10: Linux  中文化架構與原理

常用的編碼系統• BIG5• EUC-TW• BIG5HKSCS• GB2312• GBK• GB18030• Unicode• UTF-8

Page 11: Linux  中文化架構與原理

區域化資料庫名稱和語系設定• 格式 :

< 語系名 >_< 地區名 > [.< 編碼系統名 >]

• 釋義 zh_TW.Big5

zh 「中文語系」TW 「台灣地區」Big5 「使用 Big5 編碼系統」

Page 12: Linux  中文化架構與原理

環境變數• 繁體中文

zh_TWzh_TW.Big5

zh_HKzh_HK.BIG5HKSCS

• 簡體中文

zhzh_CNzh_CN.GB2312zh_CN.GBKzh_CN.GB18030

Page 13: Linux  中文化架構與原理

環境變數優先順序• 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)

Page 14: Linux  中文化架構與原理

區域化環境資料庫• locale database

Localization Environment database

Page 15: Linux  中文化架構與原理

區域化環境類別 (categories)

• LC_CTYPE: 字元分類及處理方式。 • LC_COLLATE: 字元順序與字串比較。 • LC_MESSAGES: 程式中用何種語言來

顯示訊息。 • LC_MONETARY: 貨幣顯式格式。 • LC_NUMERIC: 數字顯式格式。 • LC_TIME: 日期與時間的顯式格式。

Page 16: Linux  中文化架構與原理

區域化環境類別 (categories)

• LC_ALL: 此類別可以一次設定以上所有 的類別。

• LANG: 作用類似 LC_ALL ,也可用來一次設定所有的 locale 環境。

Page 17: Linux  中文化架構與原理

區域化環境類別 (categories)

• Glibc-2.2 以後增加部份

• LC_NAME:

• LC_ADDRESS:

• LC_TELEPHONE:

• LC_MEASUREMENT:

• LC_IDENTIFICATION:

Page 18: Linux  中文化架構與原理

參考網站• http://xcin.linux.org.tw/i18n/index.html

http://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

Page 19: Linux  中文化架構與原理

( 三 ) 原理• 基本架構

libc + localedata + locale settings + Xi18n

• 中文字型• 中文輸入法程式• 中文應用程式及其它

Page 20: Linux  中文化架構與原理

( 三 ) 原理• What is “ 基本架構”

• 系統底層 libc

• 區域化資料庫 locale data

• locale environment variable

• X lib & XLC_LOCALE

Page 21: Linux  中文化架構與原理

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/

Page 22: Linux  中文化架構與原理

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/

Page 23: Linux  中文化架構與原理

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

Page 24: Linux  中文化架構與原理

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. 自行安裝,參考網址http://www.candyz.idv.tw/docs/RH7+Chinese.txt

Page 25: Linux  中文化架構與原理

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

Page 26: Linux  中文化架構與原理

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

Page 27: Linux  中文化架構與原理

X lib

• XFree86 3.3.4 版以後已有 zh_TW.Big5 的區域化環境資料,無須再安裝 X 的中文區域化資料

• 參考網址http://xcin.linux.org.tw/i18n/i18n_tool/README.Big5.html

Page 28: Linux  中文化架構與原理

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

Page 29: Linux  中文化架構與原理

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

Page 30: Linux  中文化架構與原理

( 四 ) 實作• 系統安裝 (Slackware 8.0)

六大步驟1.ADDSWAP2.TARGET3.SOURCE4.SELECT5.INSTALL6.CONFIGURE

Page 31: Linux  中文化架構與原理

( 四 ) 實作• 中文套件 (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

Page 32: Linux  中文化架構與原理

參考網址• 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/

Page 33: Linux  中文化架構與原理

( 五 ) 其它• 中文化相關議題• CLE 未來發展• Any Questions??

• Discuss!!

Page 34: Linux  中文化架構與原理

粽子節快樂 ^_^

下次再會 ...