對於國內很多想學、初學Linux的用戶來說,丑陋的中文支持是阻礙他們持續使用下去的最主要原因。失望之余也許你會選擇安裝一個像BluePoint、紅旗、TurboLinux等中文版本,不過在Linux陣營中,RedHat又是我們不得不涉及的,網上鋪天蓋地的資料、軟件都是For RedHat的,其它的版本要不兼容性有問題,要不就根本找不到你需要的指令……此時才真的感覺到了“熊掌與魚二者不可兼得”的含義! 不過隨著RedHat 7.1的推出,這些問題終於有了解決的眉目,RedHat采用的內核是kernel 2.4.2,XFree86是4.03,KDE是2.1.1,glibc是2.2.2,操作系統底層對國際化已經支持得很好。如果你只要顯示中文或者浏覽中文網頁,根本無須額外安裝任何軟件就可以實現。 Linux國際化和本地化 要讓Linux支持多語種,涉及到兩個方面的問題――國際化和本地化,也就是人們常說的i18n和l10n。 1.i18n “國際化”,國際化的英文是Internati-onalization,這個英文單字的第一個字母i與最後一個字母n之間有18個字母,所以也常常被簡稱為i18n。 i18n是一種觀念,用來提供一個架構,讓同樣的代碼可以適用於各種語種習慣和編碼系統,程序設計人員只要利用這個架構的機制、准則編寫應用程序,就可以在不新編譯代碼的情況下,支持各式各樣的語言(其中特別重要的就屬C程序庫以及X圖形界面的國際化設計了)。 2.l10n “本地化”,英文為Localization,因為l和n之間有10個字符,所以也常簡稱為l10n。l10n的主要作用是對軟件進行加工,使之滿足特定市場上的用戶對語言和功能的特殊要求。涉及到文字的翻譯、用戶界面布局調整、本地化特性開發、聯機文檔和印刷手冊的制作,以及保證本地化版本能正常工作的軟件質量保證活動,其中當然還應該有輸入法的支持。 也就是說,i18n提供操作系統底層的支持,l10n提供本地支持。像我們見過的Win2000就是以這種模式開發的,不同語種的Win2000的內核完全一樣(i18n),只是操作界面和文檔等不同(l10n)。 內置中文支持 RedHat采用Locale技術來提供多語種支持,我們只要設置好相應的Locale就可以了。 需要說明的是,“典型安裝”的RedHat 7.1並沒有簡體中文支持,必須手工選擇簡體中文支持,如果你是新手不知道如何選擇,那也很簡單,安裝的時候選擇定制類型中的“Everything(完全安裝)”就可以幫助你解決這個問題,不過你需要足夠的磁盤空間(需要2.5GB)。 1、設置中文locale RedHat的locale切換很簡單:進入Linux窗口界面,執行locale_config會彈出一個選擇本地語言窗口,選擇“Chinese(CN.GB2312) zh_CN.GB2312”來設置locale為“簡體中文”,如果你想試用一下“繁體中文”,也可以選擇“Chinese(TW.Big5) zh_TW.Big5”。 2、中文locale應用 打開一個控制台,運行date命令。怎麼看到的是一行亂碼?沒錯,應該是亂碼,不過這說明你已經正確地設置了中文locale。 (1)Gnome環境 運行startx進入默認的GNome桌面,你將看到任務欄上的時間已經變成中文顯示了,而且在左下角的那個大腳板中的菜單也有中文了(注意:我這裡說的是“也有”而不是“也是”,這是由於Gnome的“簡體中文化”還沒有完全完工,你看到的菜單實際上是中英文混雜)。 也許很多朋友更加習慣KDE環境,沒關系,執行switchdesk可以通過圖形界面選擇你喜歡的操作環境(Gnome、KDE、FVWM等等)…… (2)KDE環境 相對於Gnome來說,KDE的本地化做得更好一些,至少菜單都是完全的中文顯示。不過不知道什麼原因,我完全安裝的RedHat 7.1還是沒有安裝KDE的簡體中文包,需要手工添加,將RedHat 7.1的第一張光盤放進光驅,然後執行以下命令: mount /mnt/cdrom cd /mnt/cdrom/RedHat/RPMS rpm -ivh kde-i18n-Chinese-2.1.1-2.noarch.rpm rpm -ivh kde-i18n-Chinese-Big5-2.1.1-2.noarch.rpm 這樣,KDE的簡/繁體中文顯示支持已經裝好,你需要做的就是設置一下顯示的語言、字體。 打開KDE的控制中心(Control Center),選擇“Personalization(個性化設置)”/“Country & Language(國家和語言設置)”,設置如下: Country: Asia & Oceania/China Language:Simplified Chinese(zh_CN.GB2312) Chars: gb2312.1980-0 (3)顯示中文目錄/文件名 RedHat是可以顯示中文的目錄和文件名的,你只需要在mount後邊添上一個-o codepage=936, iocharset=cp936參數就可以了,比如: mount -t vfat /dev/hda1 /mnt/dosc -o codepage=936,iocharset=cp936 還有一個一勞永逸的方法,修改/etc/fstab,下邊是我的fstab文件: Linux下的中文輸入法很多,可是並不是每一種輸入法都可以在RedHat 7.1下使用,一般你都需要做些調整,而且這種調整對於初學者來說絕對是“難於上青天”的。 Linux下有兩種通用的輸入法軟件chinput和xcin,安裝起來都十分麻煩。為簡單起見,我們采用拿來主義,借用RedFlag(紅旗)Linux下的rfinput輸入法來實現RedHat 7.1下的中文輸入。 網友PopWander將RedFlag Linux下的輸入法移植到了RedHat 7.1下,我們可以到http://go3.163.com/~popwander/software/rf-xim-input-2.1-2.i386.rpm下載,然後執行以下指令安裝: rpm -ivh --force rf-xim-input-2.1-2.i386.rpm rfinput自帶中文點陣字體,並自動設置環境變量,在RedHat 7.1下無需其它任何設置,它隨KDE/Gnome的啟動而啟動,需要輸入中文時你只需要按下Ctrl+Space就可以調出中文輸入法,對於KDE用戶而言,你也可以直接點擊桌面右下角的圖標選擇輸入法。 rfinput包括智能ABC、五筆等輸入方法,可以直接輸入詞組,而且具有Windows下輸入法的聯想和記憶功能,使用起來十分方便。如果你是五筆用戶,還可以編輯rfinput中的五筆輸入法碼表文件,這是一個文本文件,你可以任意添加自己的詞組,每個詞組占一行,格式請查看文件/usr/local/rfinput/lib/wbx.mb。 注意:在http://www.redflag-linux.com/business/downloadmain.po處下載RedFlag Linux輸入法版本為2.0.1,而光盤版中的最新版本為2.2-2,二者都不能直接使用在RedHat 7.1之下,如果你想要自己編譯,請下載源碼文件。 Windows字體的移植 XFree86 4.0以後已經可以很好地支持TrueType字體。TrueType字體可以實現無級縮放,顯示效果自然非點陣字體可比。如果你想要達到Windows下漂亮的字體效果,就必須安裝中文TrueType字體。當然,最簡單的還是借用Windows自帶的中文TrueType字體。為方便起見,這裡我們只以SimSun一種字體為例。 注:XFree86 3.x對TrueType支持有問題,所以在安裝字體之前,你首先需要確認使用的是XFree86 4.03,用xdpyinfo查看XFree86的版本號: xdpyinfo grep release 請保證顯示的數字為4003。 1、字體的安裝 我將TrueType字體安裝在了/usr/share/fonts/zhFonts目錄中,你可以根據自己的喜好設置。需要注意的是,很多網站上介紹將TrueType字體安裝在/usr/share/fonts/default/TrueType下,這個目錄在RedHat 7.1下已經存在,並且安裝有TrueType字體,所以請另選目錄,操作步驟如下: mkdir /usr/share/fonts/zhFonts cp /mnt/dosc/Windows/simsun.ttf /usr/share/fonts/zhFonts cd /usr/share/fonts/zhFonts ttmkfdir >fonts.dir ttmkfdir對Windows的TrueType字體的識別不是很好,我們須要編輯fonts.dir,將它修改為以下內容: 4 simsun.ttf -misc-SimSun-medium-r-normal--0-0-0-0-p-0-ascii-0 simsun.ttf -misc-SimSun-medium-r-normal--0-0-0-0-p-0-gbk-0 simsun.ttf -misc-SimSun-medium-r-normal--0-0-0-0-p-0-iso8859-1 simsun.ttf -misc-SimSun-medium-r-normal--0-0-0-0-p-0-gb2312.1980-0 然後將fonts.dir另行拷貝為fonts.scale(設置可縮放字體): cat fonts.dir >fonts.scale 2、設置TrueType字體支持 我們已經有了XFree86可以使用的TrueType字體,現在我們要編輯XFree86 4.03的配置文件XF86config-4,加入SimSun字體的路徑(在Section "Files"段中),如下所示: Section "Files" FontPath "unix/:7100" FontPath "/usr/share/fonts/zhFonts" EndSection 還要在Modules段加入TrueType字體支持模塊xtt(freetype模塊也可支持TrueType字體,但是顯示速度不如xtt,並且二者不可同時使用),如下所示: Section "Module" …… Load "xtt" …… EndSection 3、使用TrueType字體 做過上述設置之後,TrueType字體的使用則是非常簡單的一件事情了。 (1)KDE環境 “KDE Control Center(KDE控制中心)”→“觀感”→“字體”,將所有的字體設置為SimSun,大小16,界面比較美觀(每個人情況可能有所不同,請自行設置大小)。 (2)Gnome環境 Gnome中TrueType中文字體的使用要麻煩一些,我們必須手工修改Gnome的的資源配置文件。 編輯/etc/gtk/gtkrc.zh_CN文件,設置fontset如下: fontset = " -misc-simsun-medium-r-normal--16-0-0-0-p-0-*-* " 同時編輯/etc/gnome/gtkrc.zh_CN文件,