Wine的中文顯示與字體設置
從 Linux Wiki
目錄 |
字無法顯示
注意字無法顯示和顯示為亂碼是不同的癥狀,如果看到亂碼,請確保系統語言和運行Wine時的語言環境一致,比如檢查系統的locale設置,或者運行wine時設置環境變量:LANG=zh_CN.UTF-8 。 如果有漢字丟失或顯示為方框,請繼續閱讀本文。
中文
解決中文無法顯示問題有三種思路:字體鏈接、字體替換或直接提供相應字體。其中「字體鏈接」方案解決的效果最好,推薦使用。其它兩種僅做參考。
字體鏈接
Windows支持字體鏈接:[1]當一種字體中不存在某個字時,可以嘗試從另一個字體文件中尋找相應的字形。所以只要把當前系統中的中文字體設為"fallback"字體,漢字通常就能正確顯示了。方法也很簡單,只需創建一個文本文件,如chn_font.reg如下[2]:
REGEDIT4 [HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\FontLink\SystemLink] "Lucida Sans Unicode"="wqy-microhei.ttc" "Microsoft Sans Serif"="wqy-microhei.ttc" "MS Sans Serif"="wqy-microhei.ttc" "Tahoma"="wqy-microhei.ttc" "Tahoma Bold"="wqy-microhei.ttc" "SimSun"="wqy-microhei.ttc" "Arial"="wqy-microhei.ttc" "Arial Black"="wqy-microhei.ttc"
注意請將wqy-microhei.ttc替換為你系統中的字體文件名,如文泉驛正黑是wqy-zenhei.ttc(請在/usr/share/fonts及其子文件夾中尋找相應字體文件)。
最後,打開註冊表wine regedit,導入上面的註冊表文件即可。中文應該都能完美顯示了(包括Picasa中文顯示為方框、軟件安裝程序漢字無法顯示等問題均可被解決)。
使用原裝庫
由於 Wine 的字體渲染仍有缺陷,安裝相應的 Windows 原裝庫可以解決上步無法解決的某些罕見問題:[3]
winetricks gdiplus riched20 riched30
字體替代
方法是打開regedit,找到 [HKEY_CURRENT_USER\Software\\Wine\\Fonts\\Replacements],添加一個鍵,鍵名為現缺少的字體,如宋體,字符串值為你想用做替代的字體,如文泉驛微米黑。[4]
另一處可以進行字體替代的位置在 [HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\FontSubstitutes],方法同上。不過上面這個方法在字體已經存在時不會進行替代,而這個方法即使有對應字體存在也有效。[5]
提供缺少的字體
把Windows中的simsun.ttc複製到~/.wine/drive_c/windows/Fonts/,可以解決宋體顯示問題。
英文
安裝微軟的英文字體即可。如果有winetricks,也可:[6]
winetricks allfonts
如果不想安裝英文字體,也可參考該文[7],設定相應的字體替換。
其它
如果感覺字體太小,可以在winecfg中設置(「顯示」標籤中選擇適當的dpi即可)。
如果需要字體相關的調試信息,可以用
env WINEDEBUG=+font wine <program>
來啟動程序。
另外,運行一些軟件時可能發現菜單的字體仍不是我們所期望的,此時可以修改~/.wine/drive_c/windows/win.ini,在文件中加入:[8]
[Desktop] IconTitleFaceName=SimSun
參考資料
- ↑ MSDN: Globalization Step-by-Step
- ↑ wine中文字體設置及字體美化
- ↑ Ubuntu 中文論壇討論: wine的2個世紀難題,普通高手都解決不了(附亂碼圖片了)
- ↑ 讓 wine 中文程序不依賴 simsun
- ↑ Useful Registry Keys - The Official Wine Wiki
- ↑ MS Fonts
- ↑ 分享: wine20050628 設定字型
- ↑ http://www.linuxdiyf.com/viewarticle.php?id=80877