13.4. mozilla - Mozilla 繁體中文語言包

Mozilla 是一個開放原始碼的網頁瀏覽器,設計方向是順從標準、 高性能和可移植性。 Mozilla 繁體中文語言包(Traditional Chinese Language Pack) 提供一個 L10N 的環境給 Big5 的使用者。 由於 mozilla-tclp 在 ports 中的維護不易, 加上種種的原因,目前已經沒有 mozilla-tclp 的 port 了, 不過還是可以透過新增語言的方式來安裝繁體中文語言包。

在安裝完後,選擇 View -> Languages and Web Content -> Tradition Chinese (zh-TW),然後關閉後從開就有中文的介面了。

Mozilla 在中文輸入及顯示方面並沒有什麼問題,但在列印部份,請修改一下 /usr/X11R6/lib/mozilla/defaults/pref/unix.js 加入中文的 ps font :

pref("print.psnativecode.zh-TW", "big5");
pref("print.psnativefont.zh-TW", "ShanHeiSun-Light-ETen-B5-H");

並安裝 print/adobe-cmapsprint/ghostscript-gnu-commfont 取得 ETen-B5-H 的 CMap name, 以及將 bsmi00lp.ttfttfm.sh --add bsmi00lp.ttf 取得 ShanHeiSun-Light 的 CIDFont name,這是 CID-Keyed Font 的兩個組成要素。也可以用 ttfm.sh --list | grep ETen-B5-H 來看看有那些可以用的字型。

如果直接用編輯器去看 .ps 則會發現有一段:

/Unicode2NativeDictzh-TW 0 dict def
/zh-TW_ls {
  /NativeFont /ShanHeiSun-Light-ETen-B5-H def
  /UCS2Font /Courier def
  /Unicode2NativeDict Unicode2NativeDictzh-TW def
  /unicodeshow1 { real_unicodeshow } bind def
  /unicodeshow2 { real_unicodeshow_native } bind def
} bind def

並且原來的 default_ls 會變成 zh-TW_ls。

在 0.9.8 時所用的是 print.psnativecode.zh-TWprint.psnativefont.zh-TW,到了 0.9.9 分得更細,ps 單獨當一「層」,變成 print.postscript.nativecode.zh-TWprint.postscript.nativefont.zh-TW

另外解釋一下 ports 中 files/ 底下的東西。Mozilla 把它的 resource 用一種很特殊的機制管理。當安裝東西時,它會記錄到 installed-chrome.txt (所以 files 底下的這個檔偶爾會變,因為 language pack 內容若有新增/刪改它也會跟著變)然後, all-locales.rdf 及 user-locales.rdf (存在於以前 keith 的 tclp) 是 Mozilla 參考 installed-chrome.txt 而做出來的檔案。 所以這兩個檔理論上是不應該擺在 ports 的 files 的 (應該讓 Mozilla 產生), 以前 keith 是在自己的電腦上先跑過, 然後抓產生出來的 rdf... 這就好像 FreeBSD 的 package, 會有 dependency 的問題。所以筆者把這兩個檔案拿掉, 改成在 Makefile 裡讓 mozilla 產生(這樣才像 ports 嘛 :P)。

不過直接使用 CIDKeyed-font 可能沒辦法直接送印表機列印, 要解決此問題可利用 ps2ps 指令, 將原 PostScript 文件轉成內嵌的 PostScript 文件。 這樣子需要兩道步驟,沒辦法直接取代原列印指令欄的 lpr ${MOZ_PRINTER_NAME:+'-P'}${MOZ_PRINTER_NAME}, 所以就必須改成比較複雜的方式:

gs -q -sDEVICE=pswrite "-sOutputFile=/tmp/out.ps" \
"-dNOPAUSE -dBATCH -dSAFER" && \
lpr ${MOZ_PRINTER_NAME:+'-P'}${MOZ_PRINTER_NAME} \
/tmp/out.ps && rm -f "/tmp/out.ps"

如果選擇了 mozilla 當作您的瀏覽器, 那麼一定要裝一下 x11-fonts/mozilla-fonts 或是 x11-fonts/webfonts, 前者是專門為 mozilla 所打造出來的 pcf fonts, 後者則是 ms 的 truetype fonts。

如果要看 flash 的話也可以裝 www/flashplugin-mozilla

另一個 Mozilla 的中文問題是當使用 Mozilla 的網址列中文使用 Google 搜尋變問號字串,可以透過以下的修正方式:

# cd /usr/X11R6/lib/mozilla/searchplugins
# fetch http://www.google.com/mozilla/google.src

或是安裝 chinese/mozilla-tclp ,這個 port 也會修正這些問題,不過方式不ㄧ樣。

現在的 mozilla 已經使用 XFT,所以一開始使用可能會找不到字體, 可以經由 env GDK_USE_XFT=0 mozilla & 的方式來執行 mozilla 讓他不採用 XFT,或是利用 fc-cache -f -v 來設定 XFT。 而中文馬賽克的問題可以加裝 x11-fonts/webfonts 來修復,或是在字型選擇的地方將 Allow documents to use other fonts 關閉。

Note: 常遇到的小問題是工具列的字很小,卻又不知道從那調整。 其實 mozilla 還有 Chrome 的設定檔, 在 ~/.mozilla/default/5e7k96bg.slt/chrome/userChrome.css, 只要設定如下就可以了:

/* Make all the default font sizes 16 pt: */
* {
   font-size: 16pt !important
}

Figure 13-2. mozilla snapshot

L10N WWW: http://www.csie.ntu.edu.tw/~b7506051/mozilla/

WWW: http://www.mozilla.org/