隨著Linux在中國(guó)的發(fā)展和普及,Linux成為一股不可阻擋的潮流。縱觀Linux在中國(guó)發(fā)展的過程,除了Linux本身在用作服務(wù)器所具有的優(yōu)勢(shì)外,它還是人們心目中對(duì)抗微軟操作系統(tǒng)的惟一武器。同時(shí),人們也注意到Linux在用戶桌面上的不足之處,它甚至沒有理想的中文字處理軟件,不能擔(dān)當(dāng)日常辦公事務(wù)的重務(wù)。
中文Linux就是在這種情況下發(fā)展起來的。眾多的廠商和Linux愛好者把目光投向了中文Linux發(fā)行版本,開發(fā)自己的中文平臺(tái)。僅1999年初到現(xiàn)在,就涌現(xiàn)了七種中文Linux版本(包括未發(fā)布的)。中文Linux發(fā)展速度之迅猛,大有當(dāng)年萬“碼”奔騰之勢(shì),它甚至沒有給人留下更多的思考時(shí)間。
大家在用中文操作平臺(tái)的時(shí)候都不太了解中文平臺(tái)的技術(shù)原理,實(shí)際上,Linux 在中文技術(shù)與UNIX的I18N等技術(shù)都有很深的淵源,同樣,由于國(guó)際通用的Linux源代碼并沒有考慮到雙字節(jié)基礎(chǔ),因此, Linux上的中文平臺(tái)都采用了非常規(guī)的手段來解決中文輸入與輸出(顯示和打?。_@些手段主要分為如下幾類:
* 利用動(dòng)態(tài)載入的方法修改系統(tǒng)函數(shù),如TL-ZwinPro(TurboLinux簡(jiǎn)體/繁體中文版)、CLE(臺(tái)灣)、CLEEX(華勝)和ZhXWin(宮敏博士創(chuàng)作,被廣泛使用)。
* 直接修改X系統(tǒng)的庫(kù)函數(shù),如XteamLinux(沖浪平臺(tái))。
* 修改Xfree86軟件包,如CXWIN(臺(tái)灣)、CXWIN增強(qiáng)版(BluePoint Linux預(yù)覽版)。
* 截取X Server和X Client的通訊,如CXServer.
值得一提的是,利用動(dòng)態(tài)載入的方法和直接修改X Window系統(tǒng)函數(shù)的方法實(shí)際上屬于同一種方法,它們都屬于外掛方式。用戶可以在http://www.turbolinux.com.cn/chinese/上了解到有關(guān)各中文平臺(tái)的介紹。 由以上分類可以看出,在Linux中文化方面,除了沿襲Window下的漢化方法外,還增加了X Window下的特殊漢化方法,可以說是把國(guó)人的智慧發(fā)揮得淋漓盡致。
實(shí)際上,中文平臺(tái)是一個(gè)過渡性技術(shù),但中文平臺(tái)在現(xiàn)階段有其存在的必要性。我們初次接觸到Linux并為其功能和表現(xiàn)所震驚的同時(shí),才發(fā)現(xiàn)Linux上的中文軟件是如此之少,而短時(shí)期內(nèi)也不能使很多軟件支持中文,所以選擇中文平臺(tái)作為解決方案是最好的方法。必須把Linux中文化同軟件國(guó)際化、軟件本地化的趨勢(shì)放在一起考慮。中文平臺(tái)實(shí)際上是做了國(guó)際化所應(yīng)做的部分,即雙字節(jié)顯示支持、雙字節(jié)輸入支持等,背離了作為本地化版本的Linux所需做的事情,即信息翻譯、圖標(biāo)設(shè)計(jì)等。
目前,TurboLinux上采用中文平臺(tái)TL-ZwinPro,利用外掛的方式實(shí)現(xiàn)漢字的輸入輸出。它是目前中文平臺(tái)中功能最多的中文平臺(tái)之一,也是大陸地區(qū)唯一兼容XIM中文輸入的平臺(tái)。ZwinPro以GPL方式發(fā)布,任何用戶都可以在TurboLinux的FTP站點(diǎn)上下載使用。
ZwinPro之所以使用外掛方式,是因?yàn)樗绕渌鼭h化方式更具靈活性。它為每一個(gè)X Window下程序留下自己的可操作空間。它截取了十幾個(gè)用于漢字輸入輸出和屏幕取詞的X Window庫(kù)存函數(shù)并完善地使這些函數(shù)所具有的功能銜接到一起。在X字體載入方面,配合TrueType字體服務(wù)器,使用漢字延遲載入,把中文平臺(tái)所占內(nèi)存縮減到最少,從而大大提高了軟件載入速度。 通過X Window底層通訊機(jī)制,把應(yīng)用軟件與輸入軟件、控制軟件和屏幕取詞軟件完美的結(jié)合在一起。
ZwinPro所具有的主要功能有:
* 多內(nèi)碼顯示、支持中文GB/GBK、中文Big5和日文顯示。
* 多內(nèi)碼動(dòng)態(tài)輸入,支持中文GB/GBK、中文Big5動(dòng)態(tài)輸入,即通過控制條改變窗口的編碼后,輸入內(nèi)碼自動(dòng)切換。
* TrueType字體支持,漢字字體自由改變,漢字字號(hào)隨西文自動(dòng)縮放。
* 中文輸入,支持Chinput協(xié)議和XIM協(xié)議。
* 方便的屏幕取詞。
ZwinPro不但在內(nèi)碼切換中文顯示方面具有獨(dú)到之處,而且在中文輸入、屏幕取詞技術(shù)和Linux中文開發(fā)庫(kù)存方面也很先進(jìn)。
中文顯示
ZwinPro使用TrueType字體和點(diǎn)字體相結(jié)合的方法來顯示中文。支持GB/GBK/Big5編碼顯示,并且顯示字體的大小隨西文字體自動(dòng)縮放,當(dāng)西文字體大小接近漢字點(diǎn)陣字體時(shí),則采用相應(yīng)的點(diǎn)陣體顯示。另外央同一窗口里,還可以通過控制條改變內(nèi)碼的顯示,對(duì)于同一內(nèi)碼的漢字如 GB/GBK,還可以改變字體顯示。ZwinPro目前支持宋體、黑體、仿宋體和楷體。
中文輸入
中文輸入軟件采用作者幾年前所開發(fā)的Chinput,并在功能上有很大改進(jìn)。Chinput是以Cxtem輸入為基礎(chǔ)的輸入軟件,最初只支持基于X通訊的協(xié)議。它具有良好的外觀,支持瀏覽輸入。在輸入方法方面,除了具有Cxtem的輸入方法這外,還增加了李振春的智能拼音等。最近Chinput增加了XIM輸入?yún)f(xié)議,使它向國(guó)際標(biāo)準(zhǔn)邁出了重要的一步。在TurboLinux繁體中文版中,兩種協(xié)議并存使用,為中文輸入提供了更多方便。
在使用了XIM協(xié)議后,在Linux上的常用軟件,如Netscape、nxterm、xemacs、rxt、vin和以gtk、qt、Motif/Lesstif為基礎(chǔ)的軟件將不依賴于中文平臺(tái)便能輸入中文。
Chinput也是被廣泛使用的輸入軟件,以它早期版本為基礎(chǔ)的版本已用在XteamLinux、BluePointLinux 和ZhXWin中。
屏幕取詞
在中文平臺(tái)ZwinPro下,用戶可以很方便地使用屏幕取詞。這也是目前Linux下惟一實(shí)現(xiàn)屏幕取詞的中文平臺(tái)。屏幕取詞的技術(shù)遵循了Window下屏幕取詞的規(guī)則,即采取閃現(xiàn)窗口,同時(shí)截獲鼠標(biāo)位置和字符串輸出函數(shù)的方法,獲取鼠標(biāo)位置處的單詞(或漢字),并通過X Window消息傳遞給詞典軟件。
屏幕取詞功能為網(wǎng)絡(luò)用戶提供了很大的方便,特別是在使用Netscape瀏覽網(wǎng)頁(yè)時(shí),用戶不再為此煩惱。
中文開發(fā)庫(kù)
ZwinPro提供了可以開發(fā)中文軟件的庫(kù)函數(shù)和目標(biāo)文件。用戶在開發(fā)出英文軟件后,只要和該庫(kù)連接,就可用在其它Linux上,中文顯示和輸入自動(dòng)實(shí)現(xiàn)。
眾所周知,由于眾多中文Linux版本的出現(xiàn),中文軟件在各版本之間的可移植已經(jīng)大大降低。所以開發(fā)跨“平臺(tái)”的中文軟件時(shí),由中文平臺(tái)提供開發(fā)庫(kù)顯得尤其重要。
從某種意義上來講,中文平臺(tái)有一些不可克服的缺點(diǎn),其最大的弱點(diǎn)是許多中文軟件不能脫離中文平臺(tái)運(yùn)行,并且由于中文平臺(tái)的多樣性,軟件商在開發(fā)軟件時(shí)可能需要為每一個(gè)中文平臺(tái)開發(fā)一個(gè)版本的軟件,造成人力和時(shí)間的浪費(fèi)。中文平臺(tái)的另一個(gè)弱點(diǎn)是在國(guó)際化方面不徹底,特別是在漢字的操作方面,多會(huì)出現(xiàn)半漢字問題,如半漢字刪除、光標(biāo)半漢字移動(dòng)、鼠標(biāo)的半漢字粘貼等,而這些問題僅僅靠中文平臺(tái)是解決不了的。
基于上述技術(shù)原因和歷史發(fā)展情況,我們可以看出中文平臺(tái)正處于一個(gè)微妙的時(shí)期,它對(duì)于Linux在中國(guó)的發(fā)展起了至關(guān)重要的作用,但正像Window下的中文平臺(tái)一樣,它終究會(huì)成為歷史。中文平臺(tái)不但很難成為L(zhǎng)inux下的標(biāo)準(zhǔn),而且各Linux中文平臺(tái)之間也很難形成統(tǒng)一的標(biāo)準(zhǔn)。
現(xiàn)在在國(guó)內(nèi)有種不好的技術(shù)趨勢(shì),有人故意將外掛和直接修改X Server的方法(如CXWIN)的區(qū)別夸大, 以說明到底哪一種漢化方式比較好, 實(shí)際上, 把外掛的方式變成直接修改 X Server的方式只不過用幾小時(shí)的時(shí)間。在實(shí)際應(yīng)用上, 兩者各有優(yōu)點(diǎn)和缺點(diǎn), 外掛方式的優(yōu)點(diǎn)是靈活性強(qiáng), 就象Windows下的外掛平臺(tái)一樣, 可掛可不掛, 對(duì)編碼顯示有靈活的控制, 這主要是因?yàn)樗窃谟脩艨臻g操作, 可以針對(duì)具體窗口進(jìn)行操作, 它的缺點(diǎn)是對(duì)每一個(gè)X應(yīng)用軟件增加了幾十 K 大小的內(nèi)存(由外掛平臺(tái)的功能決定), 以擁有自己的空間, 這也是對(duì)應(yīng)用軟件進(jìn)行特別配置所必須的(應(yīng)注意的是, 字體空間存儲(chǔ)在X Server 上, 不在用戶空間). 直接修改X Server的方法的優(yōu)點(diǎn)是節(jié)省內(nèi)存, 避免了在用戶桌面上留下LD_PRELOAD變量, 缺點(diǎn)是靈活性差,不能對(duì)每一個(gè)窗口進(jìn)行控制, 必須隨X版本的升級(jí)做改動(dòng), 更危險(xiǎn)的是, 對(duì)X Server的改動(dòng)可能影響到整個(gè)X窗口系統(tǒng)的穩(wěn)定性。
上述的中文平臺(tái)都是臨時(shí)的解決方案, 雖然目前在很大程度上滿足了用戶需要, 但不是最終解決方案,也不是什么內(nèi)核漢化。最徹底的漢化是隨著Linux內(nèi)核對(duì) Unicode的支持,改動(dòng)應(yīng)用軟件使其支持雙字節(jié)操作和XIM輸入。也許這才可以稱之為內(nèi)核漢化。但是其中雙字節(jié)操作是中文平臺(tái)不能解決的,因此中文平臺(tái)將起到越來越小的作用, 甚至消失。而我們現(xiàn)在所做的中文平臺(tái)工作雖然花費(fèi)了大量的精力,并且在現(xiàn)階段對(duì)于在中國(guó)普及Linux,提高技術(shù)人員Linux的開發(fā)水平方面發(fā)揮了相當(dāng)大的作用,但畢竟只是一個(gè)階段性的產(chǎn)物,也許只能稱之為過眼云煙。而現(xiàn)在鼓吹“內(nèi)核漢化”的人,只不過是一種市場(chǎng)炒做行為,但從某種意義上來講,這是一種技術(shù)誤導(dǎo),對(duì)Linux發(fā)展有百害而無一利。
最近,以Sun為首發(fā)起了一個(gè)Linux國(guó)際化組織(http: //www.lil8nux.org/),該組織將使現(xiàn)在Linux上常見的軟件國(guó)際化,主要的參與組織有TurboLinux、CSK、JLA、 TLUG、SuSE、Redhat、NTT、Fujitsu、NEC、Caldera、LBI、IBM等公司。屆時(shí)我們將發(fā)現(xiàn),Linux將不再需要中文平臺(tái)便能處理中文,做中文Linux發(fā)布版本的公司將要做的只是把Linux本地化。
Linux中文化發(fā)展到今天,傾注了很多人的心血,同樣,也有許多人開發(fā)出富有成效的中文平臺(tái),盡管在將來Linux國(guó)際化逐步發(fā)展的前提下,中文平臺(tái)將逐漸退出歷史舞臺(tái),但我們將記住并尊敬這些人。同樣,希望Linux開發(fā)的后來人能夠認(rèn)清真正的Linux技術(shù)發(fā)展方向,正確地推動(dòng)國(guó)內(nèi)Linux技術(shù)的發(fā)展。


