Linux的漢化

cn0760-pb發表於2007-02-14

轉自:

Linux的漢化

說到Linux的漢化問題,其實很簡單,但由於Linux的版本過多漢化過程中多多少少有些不同,而且執行於X的WM種類繁多而造成網上資料不能照搬照抄,因此經常最終導致初登Linux殿堂的兄弟因此產生畏懼從而卻步。實在是很可惜。所以今天我就簡單的寫幾句。

各個版本的不同也就不提了,而WM比如KDE與GNOME的不同漢化也不是我想說的,我是從一個單純的由一個個原始碼包構成的LFS系統的角度對具有泛性的漢化小結一下,相信對於不用KDE和GNOME的朋友會有些幫助。

讓我們分四步走:

一、locale
這個基本上不用多說,發行版在安裝時就設定好了的。如果是LFS,那就在~/profile里加個“export LC_ALL=zh_CN”,當然zh_CN後面再加GB2312或是GBK或是UTF-8就看你的喜好了。這個設好了的話,同時也能在mlterm里正常顯示中文了。

二、加入所需字型
通常的做法是把Windows下的simsun.ttc改名為simsun.ttf放到/usr/X11R6/lib/X11/fonts/下TTF或TrueType目錄下(具體看你的X系統實際情況。也可自建目錄,然後把目錄加到/usr/X11/xorg.conf(或XFree86.conf)中)
然後開啟一個終端執行"mkfontscale"、"mkfontdir"、"fc-cache",再重啟X系統就能使用新加的字型了。

三、/etc/font/font.conf
當然這個檔案不是萬不得已的話最好不要動,因為升級fontconf包時會被覆蓋,通常的做法是在同級目錄下建個local.conf或在使用者目錄下建.font.conf。基本上不用修改,唯一要改的情況就是第二步中加入的中文字型發虛,所以在fontconfig與/fontconfig中加入如下程式碼(為了防止blogchina這個笨系統把下面程式碼轉成xml頁面,就把"match target="font">
test name="pixelsize" compare="more_eq">
double>8/double>
/test>
test name="pixelsize" compare="less_eq">
double>18/double>
/test>
edit name="antialias">
bool>false/bool>
/edit>
/match>

這樣中文顯示就跟Windows上沒什麼兩樣了。但有些系統裡英文字型間距會放大,那順便再加入下面幾行:
match target="font">
test target="pattern" name="lang" compare="contains">
string>zh-tw>
string>zh-cn/string>
string>ja/string>
string>ko/string>
/test>
edit name="spacing">
const>proportional/const>
/edit>
edit name="globaladvance">
bool>false/bool>
/edit>
/match>


四、基於GTK2的程式
經過上面的設定,系統的中文支援已經很好了,不過還有些基於GTK2的程式比如SCIM的皮膚顯示、LumaQQ裡的中文字型等偏小,這就要在/etc/gtk-2.0/下新建一個gtkrc的檔案(如果已經存在的話就對其修改),然後加入下列程式碼:
style "default"
{
font_name = "helvetica,simsun,sans 12"
}

widget_class "*" style "default"
儲存再重啟X系統就可以了。

什麼?你還有GTK程式?能不用就不用吧,不過既然用了,那就改/etc/gtk/gtkrc.zh_CN(相應於你第一步中設的locale)如下:
style "gtk-default-zh-cn" {
fontset = "-*-*-medium-r-normal--14-*-*-*-*-*-iso8859-1, -*-*-medium-r-normal--14-*-*-*-*-*-gb2312.1980-0,*-r-*"
}
class "GtkWidget" style "gtk-default-zh-cn"

就這四步,夠簡單吧?!
[@more@]

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7329581/viewspace-899608/,如需轉載,請註明出處,否則將追究法律責任。

相關文章