以下內容包括: 1. 為 Redhat 的兩個字體子系統添加字體 2. 讓 Enlightenment 顯示中文 3. Java 的中文問題: - JBuilder 的中文問題 - J2SDK 的中文問題 - J2RE 的中文問題 大家挑自己需要的看就好了. 為 Redhat Linux 添加新字體 [注] 以下過程在 Redhat 9.0 上測試通過. 准備要安裝的字體, 如: simsun.ttc, tahoma.ttf... 根據發行注記裡所言分別為核心 X 字體子系統和 fontconfig 字體子系統添加字體: 為核心 X 字體子系統添加字體 [注] 以下部分應該對 Redhat 9.0 之前的版本也適用, 因為 核心 X 字體子系統存在 於迄今為止的版本中. "如果你想給你的 Red Hat Linux 9 系統添加新字體,根據使用新字體的字體子系統而 定 ,你必須明確所需步驟。對於核心 X 字體子系統,你必須: 1. 創建 /usr/share/fonts/local/ 目錄(如果它不存在): mkdir /usr/share/fonts/local/" - 這一步沒問題. "如果你必須要創建 /usr/share/fonts/local/,你就必須把它添加到 X 字體服務器的 路 徑中: chkfontpath --add /usr/share/fonts/local/" - 如果是剛創建的 /usr/share/fonts/local/, 那麼執行這一行命令會提示錯誤 因為系統在這個目錄裡找不到 fonts.dir 文件, 然後就不 add.. 不過沒關系, 這一步跳過去, 在第三步之後做. "2. 把新字體文件復制到 /usr/share/fonts/local/ 中" - 照做. "3. 使用以下命令來更新字體信息: ttmkfdir -d /usr/share/fonts/local/ -o /usr/share/fonts/local/fonts.scale" - 照做. 然後: 1) 把 fonts.scale 拷貝出來一份 fonts.dir. 2) chkfontpath --add /usr/share/fonts/local/ "4. 使用以下命令來重新啟動 xfs 字體服務器: service xfs reload" - 這一步我沒成功, 因為我發現 redhat 9 裡面沒有 service 這個命令. 於是 用笨辦法解決: 退出 X, 再 startx. 以上這些步驟做完之後, 所有 gtk 1.2 的程序裡有關字體的部分 (如 xmms 的字體設置 裡) 都多出來我們要的新字體, 像 simsun, tahoma. 這時可以在程序內部直接使用了. 比如我們讓歌曲列表裡的中文使用 simsum, 英文使用 tahoma, 可以這樣做: 1) 先在 xmms 的 Fonts 裡勾上選項 "Use fontsets" - 讓 xmms 支持雙字節的 中文字體; 2) 在 播放清單 部分浏覽字體, 選擇使用 simsum: -misc-simsun-medium-r-normal-*-*-120-*-*-c-*-koi8-r (不用拷這個, 選上 simsun 它自己就出來了) 對於英文字體的要用 tahoma 就這麼來, 一點小技巧: 把這段 "-misc-simsun-medium-r-normal-*-*-120-*-*-c-*-koi8-r" ^x 剪切下來, 再選字體為 tahoma, 出現這個: -microsoft-tahoma-medium-r-normal-*-*-120-*-*-p-*-viscii1.1-1 好了, 在後面加個逗號, 把剛才剪切的那段東東 ^v 粘貼在後面成為: -microsoft-tahoma-medium-r-normal-*-*-120-*-*-p-*-viscii1.1-1, -misc-simsun-medium-r-normal-*-*-120-*-*-c-*-koi8-r 這麼一行, 保存一下, 於是歌曲列表就會對中文使用 simsum, 英文使用 tahoma. 再把這行拷下面 Main Window 的字體裡 (要勾上 "Use X font"), 這時 xmms 主窗 口裡的字體 (像那條來回滾動的歌曲信息的字體) 也和歌曲列表裡的一樣了. 注意, 我剛才說的是程序內部, 就象 xmms 的歌曲列表一樣, 而 程序本身, 即 xmms 自 己的窗口卻還是又粗又大的字體, 這時需要改 gtk 的字體設置: 1) 用 root 賬號: vi /etc/gtkrc.zh_CN 2) 把原來的: fontset = "-adobe-helvetica-medium-r-normal--16-*-*-*-*-*-iso8859-1, -*-*-medium-r-normal--16-*-*-*-*-*-gb2312.1980-0,*-r-*" 改成和我們上面用在 xmms 裡的字體一樣: fontset = "-microsoft-tahoma-medium-r-normal-*-*-120-*-*-p-*-viscii1.1-1, -misc-simsun-medium-r-normal-*-*-120-*-*-c-*-koi8-r" 3) 保存退出, 關掉 xmms 這些程序, 再重新打開, 效果就出來了! Enjoy! 為 fontconfig 字體子系統添加字體 [注] 以下除了 "圖形化地安裝字體" 部分為 Rehat 9.0 獨有, 其他應該在之前版本也適 用, 大家試試. 這部分簡單多了, 看 redhat 9 發行注記: "把新字體添加到 fontconfig 字體子系統比較簡單明了;只需把新字體復制到 /usr/share/fonts/ 目錄中即可(個體用戶可以把新字體復制到 ~/.fonts/ 目錄中來修 改他們的個人字體配置) 復制了新字體後,使用 fc-cache 來更新字體信息緩存: fc-cache (這裡的 應該是 /usr/share/fonts/ 或 ~/.fonts/ 目錄。)" - 我是按這個辦法把字體拷 ~/.fonts/ 下面做成功的. (不想使用 root 用戶, hh) "個體用戶還可以圖形化地安裝字體。方法是:在 Nautilus 中浏覽 fonts:///,然後把 新字體文件拖放到那裡。" - 而這個辦法我失敗了, 無論我用普通用戶還是 root 用戶, 都無法把字體文件 拷貝或者 "拖放" 到 Nautilus 的 fonts:/// 文件夾裡. 不知道原因, 只好放棄. 按第一種方式添加成功後, 在 gtk 2 的程序裡設置字體的部分都可以自由使用新字體 比如在控制中心裡把應用程序字體都改成 simsum. (另外, 我發現 10 號大小的 simsun 效果最好, 不使用單色也非常清晰, 可以考慮使用) 總的來說, 為 Redhat Linux 添加新字體並沒有什麼太難太神秘的東西, 我個人做完之 後 覺得並沒有想像中那麼難, 尤其是 gtk 1.2 程序的字體部分, 不必改別人說過的那麼多 文件, 而實際只要添加完字體, 改個 /etc/gtkrc.zh_CN 就搞定了. 讓 Enlightenment 顯示中文 同樣簡單, 在上面的前提下, 找到你當前使用的 E 主題, 如我的是在 ~/.enlightenment/themes/AquaX/ 進入這個目錄後, 最簡單的做法: gedit textclass.cfg 利用 gedit 的替換功能, 把所有關於字體的字符串, 如: "-*-helvetica-bold-r-normal-*-*-120-*-*-*-*-*-*" 統統替換成和 xmms 一樣的: -microsoft-tahoma-medium-r-normal-*-*-120-*-*-p-*-viscii1.1-1, -misc-simsun-medium-r-normal-*-*-120-*-*-c-*-koi8-r" 保存退出, 清除 E 的緩存, Restart E, 搞定. Java 的中文顯示 1. JBuilder 的中文問題 vi /etc/profile 添加: JAVA_FONTS=/path/to/your/zhfonts/ eXPort JAVA_FONTS 比如要用剛才弄好的 simsum 和 tahoma 字體, 因為我們已經把它們放在: /usr/share/fonts/local 裡面了, 所以這裡就可以填: JAVA_FONTS=/usr/share/fonts/local 注意, JBuilder 顯然用的是 fontconfig 字體子系統, 所以, 要讓它認出來 有哪些字體可以用, fonts.scale 和 fonts.dir 這兩個問題無疑是必需的. 相比較上面核心 X 字體子系統的字體文件夾裡, 即我的 ~/.fonts 裡面只有 字體文件和一個叫 "fonts.cache-1" 的文件, 可以對比著理解. 能讓 JBuilder 打開的程序顯示中文, 但 JBuilder 本身中文有問題, 下面: 修改 JBuilder 自己的字體配置, 比如我的 JBuilder 裝在: ~/Apps/Devs/JBuilder 那麼: vi ~/Apps/Devs/JBuilder8/jdk1.4/jre/lib/font.properties 把這樣的東西: serif.0=-b&h -lUCidabright-medium-r-normal--*-%d-*-*-p-*-iso8859-1 serif.1=--standard symbols l-medium-r-normal--*-%d-*-*-p-*-urw-fontspecific serif.italic.0=-b&h-lucidabright-medium-i-normal--*-%d-*-*-p-*-iso8859-1 serif.italic.1=--standard symbols l-medium-r-normal--*-%d-*-*-p-*-urw-fontsp ecific 統統換成如: serif.0=-microsoft-tahoma-medium-r-normal-*-*-120-*-*-p-*-viscii1.1-1 serif.1=-misc-simsun-medium-r-normal-*-*-120-*-*-c-*-koi8-r serif.italic.0=-microsoft-tahoma-medium-r-normal-*-*-120-*-*-p-*-viscii1.1-1 serif.italic.1=-misc-simsun-medium-r-normal-*-*-120-*-*-c-*-koi8-r (還是用上面 xmms 一樣的字體) 所有這些 "*.0=.." 都是描述英文該用什麼字體 而所有 "*.1=..." 都是描述中文該用什麼字體 最後保存退出, JBuilder 裡的英文就都是 tahoma, 所有的中文都是 simsun 自然, 因為已經設置了 JAVA_FONTS , 所以所有 Java 的應用程序都能正常找到 中文字體並顯示.