(
[email protected])2000/4 本文將介紹在RedHat6.2中,設置中文顯示和輸入的方法。感謝網友Rigel、於明儉老師等給予的幫助。特別感謝於 老師開發了Chinput中文輸入 服務器 軟件,使在 Linux 下可以方便的使用中文。 存在於RedHat6.2中的XFree86-3.3.6視窗系
(
[email protected]) 2000/4
本文將介紹在 RedHat 6.2 中,設置中文顯示和輸入的方法。感謝網友 Rigel、於明儉老師等給予的幫助。特別感謝於
老師開發了 Chinput 中文輸入
服務器軟件,使在
Linux 下可以方便的使用中文。
存在於 RedHat 6.2 中的 XFree86-3.3.6 視窗系統字體解釋器freetype對中文TrueType字體的解釋效果不太好,但在
XFree86-4.0 中新增的 xtt 組件會得到更好的視覺效果。
由於我對 Linux 了解尚淺,錯誤難免,請大家能及時指出。並希望大家能提供更多的中文化軟件的方法與技巧。
升級到 RedHat 6.2
升級到新的版本一般是通過獲得一張新版CD,重新安裝時選擇升級完成的。但我個人則是從網上下載到部分更新的軟件包,
自行升級的。如果你也是使用這種方法,則有些事情需注意,否則,可以忽略本節。
升級可按照:系統核心、基本C函數庫、庫連接工具、X視窗系統、X高級控件庫、桌面系統的順序進行。當需要編譯軟件時,
升級相關編譯程序和庫開發包。
在 XFree86 的更新中,使用 xfs 的用戶需要注意:當你升級 XFree86-xfs
後,它並不使用新的配置文件替換舊的,而是將其保存為 .rpmnew 形式。所以應將
/etc/X11/fs/config.rpmsnew
改成 config,並重新使用 chkfontpath
命令重新配置字體搜索路徑,因為新的配置文件會有時會包含某此些重要的選項。若不使用 xfs 字體服務器,則直接修改
/etc/X11/XF86config 文件,加上你所使用的字體描敘即可。
Locale 的設置
由於在 RedHat 的 Glibc 2.1.3 中未包含 zh_CN.GB2312,需從台灣的Linux 中文擴展項目的
ftp 網站獲取中文GB2312 場所的源碼包。下載地址如下:
ftp://cle.linux.org.tw/pub/CLE/SRPMS/SRPMS/
locale-zh-0.9.src.rpm <== 目前的版本,包含 GB 和 BIG5
注:若無法連接台灣的站點,可到我的主頁下載。我制作了一個locale數據包,包含CLE項目的gb2312,
big5和TLC的gbk編碼。
下載後,以 root 身份,編譯該源碼包(請務必重新編譯,舊的數據包將無法使用)。步聚如下:
rpm -ivh locale-zh-0.9.src.rpm
該命令將源碼包安裝在 /usr/src/redhat/ 目錄下,進入 SPECS 子目錄,輸入
rpm -ba zh-localedata.spec
建立 RPM 包。如果無問題的話,生成的 RPM 包在 RPMS/i386 目錄下,可以把它保存起來,可供以後使用。在SRPMS 下,
生成一個新的源碼包,不需要可刪除。安裝 locale:
rpm -Uvh locale-zh-0.9.i386.rpm
安裝完,設置使用該場所,以 bash 為例:
export LC_ALL=zh_CN.GB2312
使用 locale 命令可以看到所有的 LC_* 變量都換過來了,檢查該 locale 是否有效。有兩種方法,一是使用 glibc 的
setlocale(LC_ALL, "") 函數來檢測,檢測程序如下:
testlocale.c 清單
-----------------
#include
#include
int main(void)
{
char *current_locale;
current_locale=setlocale(LC_ALL, "");
if(current_locale)
printf("Current locale: %s\n", current_locale);
else
printf("Doesn't support.\n");
return 0;
}
編譯:g
clearcase/" target="_blank" >cc testlocale.c -o testlocale
執行:若支持,則顯示場所名
另一種更簡單的方法是呼喚一個命令,看是否 locale 起作用了,如 rpm -qi kernel 如果你看到顯示結果的時間變成????y??m??d,那麼 locale 已經生效了。
通過了上面的任一種
測試,可說明 glibc 已
本地化了。
另外,可以在 /usr/share/locale/locale.alias 文件中定義 locale
的別名,該別名可以有助於記憶,如在該文件中加入一行為:
china zh_CN.GB2312
然後使用 export LC_ALL=china 則完成與上一種方法相同的功能,而且更直觀。為了在以後登錄後就使用中文的locale,
可以將此命令加入到你的 HOME 目錄的 .bashrc 文件中。
接下是就是有關 XLC_LOCALE 的設置了。在 /usr/lib/X11/locale/locale.alias 文件加入一行:
zh_CN.GB2312 zh_CN.eucCN
到此,glibc 和 Xlib 的 locale 就配置完成了。
Chinput 的安裝
自從於明儉老師在他的 Chinput 中文輸入服務器軟件中加入了 XIM 支持,遵從 Linux 國際化標准,使得我們可以在任何
遵守國際化標准的 Linux 產品中輸入中文了。該軟件可以從他的主頁下載。
http://www.turbolinux.com.cn/~justiny/download/chinput-2.1.tar.gz
下載後,解開該文件:tar -xvzf chinput-2.1.tar.gz
解開後,再對源碼作一點點改動。進入 Chinput-2.1/src 裡,使用你喜歡的編輯器,打開 chinput.c
文件,查找 GBK字樣,將其改為 GB2312。再查找
system("/usr/bin/zwincontrol &");
語句,將其取消(在前面加上 // ),該語句是啟動 ZWinPro 漢化平台的工具條的,chinput 的包裡沒有。
修改完後,回到 Chinput-2.1 目錄下,執行 make 建立該軟件。軟件的安裝請參閱其自帶的文檔。
安裝完成後,可以嘗試中文輸入了。進入 X Windows 環境。選擇 Run,輸入
chinput,中文輸入服務器就加載了。調用一個支持 XIM 輸入的程序,如 gedit,輸入幾個漢字試試,很好用。
為了能在下次進入 GNOME 時自動啟動輸入服務器,可在 GNOME Control Center 的 Startup Programs 項目中加入chinput。
注:chinput 輸入服務器,僅對支持 XIM 的軟件有效,如果該軟件支持這種輸入方式,敲入 ctrl-space 就會出現輸入條,
否則無任何顯示。
應用軟件的中文支持設置
GTK 1.2
修改 GTK 工具集的資源文件。在 /etc/gtk/gtkrc.zh_CN 文件中將所有的字體定義改為:
fontset = "-*-*-medium-r-normal--16-*-*-*-*-*-iso8859-1,\
-*-*-medium-r-normal--16-*-*-*-*-*-gb2312.1980-0"
由於 GTK 自定義使用14點陣象素的字體,而 Xfree86 僅帶中文16點陣字體,所以需要將所有的字體尺寸描途改為16。
另外在 TurboLinux 中帶有一個中文字體包 hz-pcfs,其中包含14,16,24點陣的中文字體,可取過來使用。
修改完之後,可以試一試效果了。我使用的是 GNOME 桌面,啟動 X 後,選擇工具菜單中的 Text File Viewer程序,
打開一個中文文件,無問題的話,就可以看到熟悉的中文了。另外,目前最出的 GNOME 1.2
的桌面系統,升級了 GTK,增加了更多的中文提示信息,很好用,值得一試。下載網址:
http://www.helixcode.com。
假若你看到的中文是亂碼的話,可嘗試做以下的修改。確定你所使用的桌面主題,不同的桌面主題采用了自制了gtkrc 文件,
當使用這些主題的時候,GTK 並沒有從 /etc/gtk 中讀取 gtkrc 文件,所以需要對相應主題的 gtkrc資源配置文件增加中文
字體描敘,使其可以正確的找到相應的中文字體。以 Default 為例,在 /usr/share/themes/Default/gtk 中會有一個 gtkrc
的文件,查看其內容,將其所有的字體描述改為像 /etc/gtk/gtkrc.zh_CN 那個樣子就行了。
Qt 1.44
關於 qt 1.44 高級控件集的中文設置問題,我還不清楚 :(
GNOME
對於 GNOME,有些提示項可以直接修改,而有些固化詞條(stock item)則需要 GNOME libs 本身對中文信息支持,
所以修改 .desktop 文件是一件最簡單的方法。(若對 GNOME 信息中文化有興趣,可聯系gnome 開發組,幫助完成中
文翻譯工作。)
漢化 GNOME 的菜單項:
在 /usr/share/gnome/apps/ 下,有一些以 .desktop 為後綴的文件,打開該文件,加入一行
Name[zh]=你想要的中文名
則可對相應的菜單項增加中文名,很容易,一看就會。GNOME 的個人菜單項存放在 HOME 目錄下的 .gnome/apps目錄裡,
形式相同。
Netscape
FIXME: Netscape
的中文設置還沒完成,暫時只給出一些簡單的配置供參考。效果:只能
.netscape的控件中輸入和顯示中文,在頁面顯
示區的form控件中只能輸入,不能顯示:(
將以下幾行加入到 home 的 .Xdefaults 文件中
!!!!!!!!!!!!!!!!!!!!!!
!!!! For Netscape !!!!
Netscape*versionLocale: zh_CN
Netscape*defaultCharset:gb2312
Netscape*fontList:\
-adobe-helvetica-medium-r-*--14-*-*-*-*-*-*-*;\
-isas-*-*-*-*--14-*-*-*-*-*-*-*:
Netscape*XmTextField.fontList:\
-adobe-helvetica-medium-r-*--14-*-*-*-*-*-*-*;\
-isas-*-*-*-*--14-*-*-*-*-*-*-*:
Netscape*XmText.fontList:\
-adobe-helvetica-medium-r-*--14-*-*-*-*-*-*-*;\
-isas-*-*-*-*--14-*-*-*-*-*-*-*:
Netscape*inputMethod: Chinput
Netscape*preeditType: root
網絡資源
www.linuxforum.net 中國Linux
論壇 www.turbolinux.com.cn/~justiny/ 於明儉的主頁,關於 Chinput 的資料。