歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Unix知識 >> 關於Unix

構築穩健的中文Linux(下)

3. 本地化 數據庫 Locale DB 國際化的第三個內容是搞好本地化數據庫Locale DB。 語言、字符集、文化習俗等組成一個軟件運行時的本地環境Locale。一個Locale是從本地化特征中提取的執行環境。它包括語言、地域、字符集。Locale的格式是ZH_CN.GBK,表示中文(z 3. 本地化數據庫Locale DB

國際化的第三個內容是搞好本地化數據庫Locale DB。

語言、字符集、文化習俗等組成一個軟件運行時的本地環境Locale。一個Locale是從本地化特征中提取的執行環境。它包括語言、地域、字符集。Locale的格式是ZH_CN.GBK,表示中文(zh)、中國(CN)、字符集(GBK)。

Locale可以一組Shell環境變量LANG、LC_ALL、LC_CTYPE、LC_COLLATE、LC_TIME、 LC_MONETORY、LC_NUMERIC、LC_MESSAGES進行設置,也可以通過C語言國際標准中提供的setlocale()函數在應用程序中查詢和設置。用戶可以在運行時設置整個Locale的全部和部分。

Setlocale()函數為應用程序開發者提供了一種具有設置所有或部分(稱之為類別)本地化環境的工具,setlocale()函數的語法為:

Char *setlocale (category,locale)

Int category;

Char *locale;

其中category是五個類別之一的名字,這些類別的名字是:

LC_CTYPE(提供字符分類和大小寫區分功能);

LC_COLLATE(提供字符串比較和排序功能);

LC_TIME(提供日期和時間表示格式,如中國是年、月、日,美國是 月/日/年,英國是日/月/年);

LC_MONETARY(提供貨幣表示格式,如中國為阿拉伯數字後加RMB,在財務表格中為$後寫阿拉伯數字);

LC_NUMERIC(提供數字表示格式)。

另外,用LC_ALL的特殊值使setlocale()函數設置所有的類別。

Locale數據庫中除了上述本地環境服務,還包括消息服務和代碼集轉換。

4. 輸入、輸出服務(I/O服務)

http://edu.itbulo.com/work/ime/'>輸入法可分為兩大類,即模式識別類和編碼類。模式識別類包括聲音http://edu.itbulo.com/work/ime/'>輸入法、光學字符識別(optical character recognition,OCR)、手寫體識別等http://edu.itbulo.com/work/ime/'>輸入法。編碼類主要是基於拼音、筆劃、部首等http://edu.itbulo.com/work/ime/'>輸入法。

圖形界面的國際化與中文本地化,具體包括:

建立中文輸入模塊的摘掛方法和界面;

建立各種點陣漢字庫、矢量輪廓漢字庫、曲線輪廓漢字庫的摘掛方法和界面;

建立基於圖形界面的漢字信息處理函數。

圖形界面的國際化處理主要在三個層次上:

X字型服務器層(X Font Server)提供處理點陣、矢量輪廓、曲線輪廓文字;

庫函數層(Libarries)、提供有關X字型服務器的函數,如把字體裝入服務器、調入、查詢、釋放字型;

命令層(Commands)包括工具類和轉換類命令:

圖形界面中文本地化提供以下應用程序:漢字造字工具、漢字圖標編輯器、漢字圖文編輯工具、漢字圖形打印工具。

Linux關於輸入的標准還是限於鍵盤輸入。在X11R6中,有XIM(X InputMehtod)標准。XIM是在應用程序和http://edu.itbulo.com/work/ime/'>輸入法之間的通信協議,目前還沒有字符終端的http://edu.itbulo.com/work/ime/'>輸入法標准。

本地化

本地化(localization,L10n,取首尾兩個字母,中間有10個字母)是向特定本地語言操作環境的轉換。

本地化工作主要包括:代碼體系國家特征文件和輸入、輸出服務的具體實現。

1.代碼體系指采用的字符集,我國目前是GB2312、GBK、GB18030和GB13000。

2.國家特征文件指Locale中的本地環境內容。

3.輸入、輸出服務與國際化中的輸入、輸出服務密切相關。

輸入方法按其功能可分為:輸入管理層、前端處理層、輸入單元層、輸入單元算法層、輔助區處理層。

輸入管理層是根據Locale環境自動到指定目錄下找出所需的輸入方法模塊、將其啟動或裝入應用程序,並填入有關入口表,以便建立應用程序與輸入方法之間的聯系。

前端處理層是對各個輸入單元進行管理、負責解釋特殊鍵的含義,切換輸入單元,並把輸入單元處理的結果存於相應的緩沖區中,以保證應用程序取走、或調輔助區處理層函數顯示。

輸入單元層是根據輸入單元的要求,對每個輸入鍵事件進行解釋、確定相應的動作、形成符合輸入單元要求的輸入串,並調用輸入單元算法層的函數進行字典查找或代碼轉換運算,把查找結果返回前端處理層。

輸入單元算法層是根據上層函數送來的輸入碼串進行字典查找運算,並把查找結果返回上一層函數。

輔助區處理層用來提供輸入方法的界面,即時狀態區、預編輯區和造字區類處理函數進行相應的管理。

三、修改Linux的核心,使其完全支持UCS。

國際化就是為了解決本地化,它是由一個一個“本地化”組成的。本地化要遵循國際化,本地化完全遵循了國際化,本地化只需要解決http://edu.itbulo.com/work/ime/'>輸入法和增加字型了。本地化的標准組織應盡量把本地化所需的內容加入到國際化中,並盡量遵循國際化。做好本地化的工作,就是為了消除本地化。什麼時候不需要

Copyright © Linux教程網 All Rights Reserved