星期六, 6月 30, 2007

Safari 3.0 beta for Windows 中文顯示

我這就來說說用 Windows 環境底下,讓 Safari 3.0 beta for Windows 支援中文的方式。
下載並安裝 Safari 3.0 beta for Windows 後,開啟 Safari 展開 Apple-Start 網頁,
看起來跟在 Mac 底下使用 Safari 瀏覽沒兩樣(如果您有使用 Mac 作業平台的話),

接著開始打開網頁瀏覽自己習慣的網站去,就像 [老地方新聞] Safari for Windows 真正的意義 by whindang 內開頭所說的一樣,
顯示繁體中文的網頁不是掛就是掉字超嚴重的。
說他掉字也不太對,仔細觀察,他其實都用日文字來顯示中文,從標點符號可以得知。
所以只要日文中沒有包含的漢字,一律無法正確顯示出來。

我也曾經試著去瀏覽跟繁體中文一樣使用雙碼字元顯示的語言的網頁,如日文、韓文或是簡體中文等,卻似乎都沒有啥問題。
打開可套用樣式的文字編輯器,像是 Office Word,
使用跟著 Safari 一同安裝的 Lucida Grande.ttf 或是 Lucida Grande Bold.ttf 這兩套字型來套用樣式,
卻無法獲得像在 Mac 系統底下的效果一樣,以 Lucida 的樣式呈現中文字體。

是 Apple 把繁體中文以外的字樣都納入了,包含日文... 等,卻沒有納入繁體中文?

在開啟 Safari 3.0 beta for Windows 以後,閱讀到網頁含有中文內文,
或是使用了 candyg 所介紹的方式讓 bookmark 可以正常加入以後,加入了含有中文標題的網址也無法正常顯示。

我就直覺是因為系統叫用的字體不含可顯示繁體中文字所致,看到的並不是一個中文字都沒有,而是有掉字的情況。如下圖:

[大圖]

這只是個範例,去打開其他網站也是如此,如果遇到 utf-8 編碼格式的網頁,更是悽慘... 比閱讀象形文字還要痛苦。

搜尋了各大網站,終於找到一點蛛絲馬跡,看了這個網站說到,
當您打開 Safari 卻一點字也沒有出現的話,那大概是 Fonts.plist 這個檔案沒有被建立起來。
這個檔案,理當被儲存在這個目錄下:
* C:\Documents and Settings\%USERNAME%\Local Settings\Application Data\Apple Computer\Safari (Windows XP)
* C:\Users\%USERNAME%\AppData\Local\Apple Computer\Safari (Windows Vista)


我也就去打開我的資料夾來查看,有這個檔案存在,那表示我可以去改造自行對照表囉?
我也就這麼去改寫他們,但是效果似乎不彰,就算我把檔案內對應到
Lucida Grande
C:\Program Files\Safari\Safari.resources\Lucida Grande.ttf
Lucida Grande Bold
C:\Program Files\Safari\Safari.resources\Lucida Grande Bold.ttf

這兩行的 strong 也改寫成
C:\WINDOWS\Fonts\MINGLIU.TTC <= 這是對照 Windows 細明體&新細明體 的字體檔案
還是無效,甚至會讓整個 Safari 介面上的字都不見了。

接著又繼續找找看還有沒有其他的解決方案,果然讓我找到了。 :shock:

IE 用 Trident,Firefox 背後使用引擎是 gecko,而 Safari 用的是 WebKit,我就從 WebKit 去下手找找看有沒有解決方法。
(WebKit 是一個 Open Source 的瀏覽器引擎,也是 Mac OS X 作業系統的 framework 之一,
在 Mac OS X 底下有 Safari,Dashboard,Mail... 和許多 OS X 原生程式皆架構在此 framework 上運行。)

透過 WebKit Nightly Builds 網站,可以下載到可以在 Windows 平台上運行的 WebKit framework。
(Nightly builds of WebKit 是測試版的 WebKit)

下載了最後一版的 WebKit Nightly Builds for Windows 到單機上並解壓縮存放後,就可以執行內含的 cmd 批次檔案。
(建議最好存放在不包含中文字元的路徑底下,如:"桌面"<=可能會影響到執行,可能。)

批次檔案的內容:
"%PROGRAMFILES%\Safari\Safari.exe" /frameworkPath:"%CD%"
這個批次檔案執行後,會開啟一個 DOS 視窗並執行:
"C:\Program Files\Safari\Safari.exe" /frameworkPath:"C:\WebKit-SVN-rXXXXX\WebKit-rXXXXX"

在執行以前,就先把 Safari 產生的 Fonts.plist 檔案移除吧,WebKit 會重新依照您現有的字型檔案重新建立清單。
等待 Safari 3.0 beta for Windows 是窗打開後,即可關閉這個 DOS 視窗。
這個時候就可以看到之前加到 Bookmark 的中文都正常顯示出來了。
接著去瀏覽網站... 似乎不會掉字,而是變框框字了...??

好吧,把 Safari 結束掉,去打開 Fonts.plist 檔案,看看他為我做了什麼。
結果沒錯,他重新建立了字型清單,卻沒有包含 Windows 內建的細明體&新細明體,
瀏覽中文網頁的時候,如果您打開原始碼來查看 CSS 部分的設定會發現,
如果網頁中 CSS 指定的字型,沒有使用細明體或是可顯示中文的字體樣式(font-family) 的話,
Safari 比較嚴謹?還是笨... 會去從頭找到尾... 如果沒有適合的字體,那就是... 不顯示 ~_~

好吧,自己添加一些碼:
細明體
C:\WINDOWS\Fonts\MINGLIU.TTC
新細明體
C:\WINDOWS\Fonts\MINGLIU.TTC

(其實清單中有置入 MINGLIU.TTC 但是 key 值卻不是中文)
加在上頭或是底下都可以,大小寫應注意,最好放在把其他字體是用中文當 key 值的之上,
打開 Safari 的 Preferences 設定 Apperance 的 Standard font 與 Fixed-width font。
都選到「新細明體」,至於字體大小就不改變了。
再來打開 Safari 瀏覽中文網頁瞧瞧,好樣的~顯示都正常了。
這麼一來,就可以享受 Safari 引擎的速度來瀏覽網頁了。

[大圖]

※※ 其實也不要高興太早,對於大部分的網頁瀏覽是可以正常,但是有時候還是會「搞怪」,
不是每次透過 WebKit for Windows 打開 Safari 去瀏覽網頁顯示中文都是百分百正常。輸入中文?請勿嘗試....


其實 Apple 的背後還是有在進行對 Windows 作業平台上運行 WebKit 為基礎的軟體持續修正中,
WebKit Nightly Builds for Windows 的部份,從清單上看來,2007-06-12 才開始有的。
不像 Mac OS X 版清單那樣的"豐富",
而在繁體中文作業環境下,畢竟對 Apple 來說是小眾,所以支援部份也就比較沒有照顧到?