歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux綜合 >> Linux資訊 >> Linux文化 >> Linux漢化在曲折中前行

Linux漢化在曲折中前行

日期:2017/2/27 12:20:49   编辑:Linux文化

——從技術角度論Linux中文平台走國際化道路的必要性

隨著Linux在中國的發展和普及,Linux成為一股不可阻擋的潮流。縱觀Linux在中國發展的過程,除了Linux本身在用作服務器所具有的優勢外,它還是人們心目中對抗微軟操作系統的惟一武器。同時,人們也注意到Linux在用戶桌面上的不足之處,它甚至沒有理想的中文字處理軟件,不能擔當日常辦公事務的重務。

中文Linux就是在這種情況下發展起來的。眾多的廠商和Linux愛好者把目光投向了中文Linux發行版本,開發自己的中文平台。僅1999年初到現在,就湧現了七種中文Linux版本(包括未發布的)。中文Linux發展速度之迅猛,大有當年萬“碼”奔騰之勢,它甚至沒有給人留下更多的思考時間。

大家在用中文操作平台的時候都不太了解中文平台的技術原理,實際上,Linux 在中文技術與UNIX的I18N等技術都有很深的淵源,同樣,由於國際通用的Linux源代碼並沒有考慮到雙字節基礎,因此, Linux上的中文平台都采用了非常規的手段來解決中文輸入與輸出(顯示和打印)。這些手段主要分為如下幾類:

* 利用動態載入的方法修改系統函數,如TL-ZwinPro(TurboLinux簡體/繁體中文版)、CLE(台灣)、CLEEX(華勝)和ZhXWin(宮敏博士創作,被廣泛使用)。

* 直接修改X系統的庫函數,如XteamLinux(沖浪平台)。

* 修改Xfree86軟件包,如CXWIN(台灣)、CXWIN增強版(BluePoint Linux預覽版)。

* 截取X Server和X Client的通訊,如CXServer.

值得一提的是,利用動態載入的方法和直接修改X Window系統函數的方法實際上屬於同一種方法,它們都屬於外掛方式。用戶可以在http://www.turbolinux.com.cn/chinese/上了解到有關各中文平台的介紹。

由以上分類可以看出,在Linux中文化方面,除了沿襲Window下的漢化方法外,還增加了X Window下的特殊漢化方法,可以說是把國人的智慧發揮得淋漓盡致。

實際上,中文平台是一個過渡性技術,但中文平台在現階段有其存在的必要性。我們初次接觸到Linux並為其功能和表現所震驚的同時,才發現Linux上的中文軟件是如此之少,而短時期內也不能使很多軟件支持中文,所以選擇中文平台作為解決方案是最好的方法。必須把Linux中文化同軟件國際化、軟件本地化的方法放在一起考慮。中文平台實際上是做了國際化所應做的部分,即雙字節顯示支持、雙字節輸入支持等,背離了作為本地化版本的Linux所需做的事情,即信息翻譯、圖標設計等。

目前,TurboLinux上采用中文平台TL-ZwinPro,利用外掛的方式實現漢字的輸入輸出。它是目前中文平台中功能最多的中文平台之一,也是大陸地區唯一兼容XIM中文輸入的平台。ZwinPro以GPL方式發布,任何用戶都可以在TurboLinux的FTP站點上下載使用。ZwinPro之所以使用外掛方式,是因為它比其它漢化方式更具靈活性。它為每一個X Window下程序留下自己的可操作空間。它截取了十幾個用於漢字輸入輸出和屏幕取詞的X Window庫存函數並完善地使這些函數所具有的功能銜接到一起。在X字體載入方面,配合TrueType字體服務器,使用漢字延遲載入,把中文平台所占內存縮減速到最少,從而大大提高了軟件載入速度。通過X Window底層通訊機制,把應用軟件與輸入軟件、控制軟件和屏幕取詞軟件完美的結合在一起。

ZwinPro所具有的主要功能有:

* 多內碼顯示、支持中文GB/GBK、中文Big5和日文顯示。

* 多內碼動態輸入,支持中文GB/GBK、中文Big5動態輸入,即通過控制條改變窗口的編碼後,輸入內碼自動切換。

* TrueType字本支持,漢字字體自由改變,漢字字號隨西文自動縮放。

* 中文輸入,支持Chinput協議和XIM協議。

* 方便的屏幕取詞。

ZwinPro不但在內碼切換中文顯示方面具有獨到之處,而且在中文輸入、屏幕取詞技術和Linux中文開發庫存方面也很先進。

中文顯示

ZwinPro使用TrueType字體和點字體相結合的方法來顯示中文。支持GB/GBK/Big5編碼顯示,並且顯示字體的大小隨西文字體自動縮放,當西文字體大小接近漢字點陣字體時,則采用相應的點陣體顯示。另外央同一窗口裡,還可以通過控制條改變內碼的顯示,對於同一內碼的漢字如GB/GBK,還可以改變字體顯示。ZwinPro目前支持宋體、黑體、仿宋體和楷體。

中文輸入

中文輸入軟件采用作者幾年前所開發的Chinput,並在功能上有很大改進。Chinput是以Cxtem輸入為基礎的輸入軟件,最初只支持基於X通訊的協議。它具有良好的外觀,支持浏覽輸入。在輸入方法方面,除了具有Cxtem的輸入方法這外,還增加了李振春的智能拼音等。最近Chinput增加了XIM輸入協議,使它向國際標准邁出了重要的一步。在TurboLinux繁體中文版中,兩種協議並存使用,為中文輸入提供了更多方便。

在使用了XIM協議後,在Linux上的常用軟件,如Netscape、nxterm、xemacs、rxt、vin和以gtk、qt、Motif/Lesstif為基礎的軟件將不依賴於中文平台便能輸入中文。

Chinput也是被廣泛使用的輸入軟件,以它早期版本為基礎的版本已用在XteamLinux、BluePoint和Linux ZhXWin中。

屏幕取詞

在中文平台ZwinPro下,用戶可以很方便地使用屏幕取詞。這也是目前Linux下惟一實現屏幕取詞的中文平台。屏幕取詞的技術遵循了Window下屏幕取詞的規則,即采取閃現窗口,同時截獲鼠標位置和字符串輸出函數的方法,獲取鼠標位置處的單詞(或漢字),並通過X Window消息傳遞給詞典軟件。屏幕取詞功能為網絡用戶提供了很大的方便,特別是在使用Netscape浏覽網頁時,用戶不再為此煩惱。

中文開發庫

ZwinPro提供了可以開發中文軟件的庫函數和目標文件。用戶在開發出英文軟件後,只要和該庫連接,就可用在其它Linux上,中文顯示和輸入自動實現。

眾所周知,由於眾多中文Linux版本的出現,中文軟件在各版本之間的可移植已經大大降低。當在中文平台上運行良好的中文Linux卓越,很難再支持中文部分。所以開發跨“平台”的中文軟件時,由中文平台提供開發庫顯得尤其重要。

從某種意義上來講,中文平台有一些不可克服的缺點,其最大的弱點是許多中文軟件不能脫離中文平台運行,並且由於中文平台的多樣性,軟件商在開發軟件時可能需要為每一個中文平台開發一個版本的軟件,造成人力和時間的浪費。中文平台的另一個弱點是在國際化方面不徹底,特別是在漢字的操作方面,多會出現半漢字問題,如半漢字刪除、光標半漢字移動、鼠標的半漢字粘貼等,而這些問題僅僅靠中文平台是解決不了的。

基於上述技術原因和歷史發展情況,我們可以看出中文平台正處於一個微妙的時期,它對於Linux在中國的發展起了至關重要的作用,但正像Window下的中文平台一樣,它終究會成為歷史。中文平台不但很難成為Linux下的標准,而且各Linux中文平台之間也很難在成統一的標准。

現在在國內有種不好的技術趨勢,有人故意將外掛和直接修改X Server的方法(如CXWIN)的區別誇大, 以說明到底哪一種漢化方式比較好, 實際上, 把外掛的方式變成直接修改 X Server的方式只不過用幾小時的時間。在實際應用上, 兩者各有優點和缺點, 外掛方式的優點是靈活性強, 就象Windows下的外掛平台一樣, 可掛可不掛, 對編碼顯示有靈活的控制, 這主要是因為它是在用戶空間操作, 可以針對具體窗口進行操作, 它的缺點是對每一個X應用軟件增加了幾十 K 大小的內存(由外掛平台的功能決定), 以擁有自己的空間, 這也是對應用軟件進行特別配置所必須的(應注意的是, 字體空間存儲在X Server 上, 不在用戶空間). 直接修改X Server的方法的優點是節省內存, 避免了在用戶桌面上留下LD_PRELOAD變量, 缺點是靈活性差,不能對每一個窗口進行控制, 必須隨X版本的升級做改動, 更危險的是, 對X Server的改動可能影響到整個X窗口系統的穩定性。

上述的中文平台都是臨時的解決方案, 雖然目前在很大程度上滿足了用戶需要, 但不是最終解決方案,也不是什麼內核漢化。最徹底的漢化是隨著Linux內核對 Unicode的支持,改動應用軟件使其支持雙字節操作和XIM輸入。也許這才可以稱之為內核漢化。但是其中雙字節操作是中文平台不能解決的,因此中文平台將起到越來越小的作用, 甚至消失。而我們現在所做的中文平台工作雖然花費了大量的精力,並且在現階段對於在中國普及Linux,提高技術人員Linux的開發水平方面發揮了相當大的作用,但畢竟只是一個階段性的產物,也許只能稱之為過眼雲煙。而現在鼓吹“內核漢化”的人,只不過是一種市場炒做行為,但從某種意義上來講,這是一種技術誤導,對Linux發展有百害而無一利。

最近,以Sun為首發起了一個Linux國際化組織(http://www.lil8nux.org/),該組織將使現在Linux上常見的軟件國際化,主要的參與組織有TurboLinux、CSK、JLA、TLUG、SuSE、Redhat、NTT、Fujitsu、NEC、Caldera、LBI、IBM等公司。屆時我們將發現,Linux將不再需要中文平台便能處理中文,做中文Linux發布版本的公司將要做的只是把Linux本地化。

Linux中文化發展到今天,傾注了很多人的心血,同樣,也有許多人開發出富有成效的中文平台,盡管在將來Linux國際化逐步發展的前提下,中文平台將逐漸退出歷史舞台,但我們將記住並尊敬這些人。同樣,希望Linux開發的後來人能夠認清真正的Linux技術發展方向,正確地推動國內Linux技術的發展。

1999, 方劍


——摘自:http://eway.8848.net/software/clinux.html


Copyright © Linux教程網 All Rights Reserved