2009-01-15

「手把手」告別你的Wine中文亂碼-Wine二部曲

想想還是先讓你們搞定中文亂碼好了,此方法不用幫Wine打補丁,中文就可以正常囉,告別亂碼吧!

以下我選用Google提供字型Droid,當然你也可以使用別的字型替代,甚至從安裝好的Windows把字型Copy到Wine。





  • 假設你已經造著我寫的裝好了Droid字型,在把字型連結到Wine

ln -s ~/.fonts/droid/DroidSansFallback.ttf ~/.wine/drive_c/windows/Fonts/
  • 首先要新增一個reg登錄檔
    注意:存檔時字元編碼選則為BIG5,否則匯入後新細明體那欄會變亂碼。



gedit ~/font.reg

把底下內容存進font.reg


REGEDIT4
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\FontLink]
"FontLinkControl"=dword:00004000
"FontLinkDefaultChar"=dword:00003000
/* 平滑化(anti-alias) */
/* 如果覺得開了之後字體難看,把三個Y改成N */
[HKEY_CURRENT_USER\Software\Wine\X11 Driver]
"ClientSideAntiAliasWithCore"="Y"
"ClientSideAntiAliasWithRender"="Y"
"ClientSideWithRender"="Y"
/* 平滑字型 */
[HKEY_CURRENT_USER\Control Panel\Desktop]
"FontSmoothing"="2"
/* 替換字型1 */
/* 安裝Wine不會提供字型,所以需要替換字型,我以Droid Sans Fallback替換 */
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\FontSubstitutes]
"Arial Baltic,186"="Droid Sans Fallback,186"
"Arial CE,238"="Droid Sans Fallback,238"
"Arial CYR,204"="Droid Sans Fallback,204"
"Arial Greek,161"="Droid Sans Fallback,161"
"Arial TUR,162"="Droid Sans Fallback,162"
"Courier New Baltic,186"="Droid Sans Fallback,186"
"Courier New CE,238"="Droid Sans Fallback,238"
"Courier New CYR,204"="Droid Sans Fallback,204"
"Courier New Greek,161"="Droid Sans Fallback,161"
"Courier New TUR,162"="Droid Sans Fallback,162"
"Helv"="Droid Sans Fallback"
"Helvetica"="Droid Sans Fallback"
"MS Shell Dlg"="Droid Sans Fallback"
"MS Shell Dlg 2"="Droid Sans Fallback"
"PMingLiU"="Droid Sans Fallback"
"新細明體"="Droid Sans Fallback"
"Tahoma"="Droid Sans Fallback"
"Times"="Droid Sans Fallback"
"Times New Roman Baltic,186"="Droid Sans Fallback,186"
"Times New Roman CE,238"="Droid Sans Fallback,238"
"Times New Roman CYR,204"="Droid Sans Fallback,204"
"Times New Roman Greek,161"="Droid Sans Fallback,161"
"Times New Roman TUR,162"="Droid Sans Fallback,162"
"Tms Rmn"="Droid Sans Fallback"
/* 替換字型2 */
[HKEY_CURRENT_USER\Software\Wine\Fonts\Replacements]
@="Droid Sans Fallback"
"Arial"="Droid Sans Fallback"
"Fixedsys"="Droid Sans Fallback"
"Microsoft Sans Serif"="Droid Sans Fallback"
"MingLiU"="Droid Sans Fallback"
"MS UI Gothic"="Droid Sans Fallback"
"PMingLiU"="Droid Sans Fallback"
"Simsun"="Droid Sans Fallback"
"Songti"="Droid Sans Fallback"
"System"="Droid Sans Fallback"
"Tahoma"="Droid Sans Fallback"
"Terminal"="Droid Sans Fallback"
/* 取代字型 */
/* Wine 1.1.12 打補丁後也會有亂碼,所以要修改這裡 */
/* Wine 1.1.12 之前可以不用修改,改了應該也沒關係 */
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontLink\SystemLink]
"Microsoft Sans Serif"="DroidSansFallback.ttf,Droid Sans Fallback"
"SimSun"="DroidSansFallback.ttf,Droid Sans Fallback"
"Tahoma"="DroidSansFallback.ttf,Droid Sans Fallback"
"PMingLiU"="DroidSansFallback.ttf,Droid Sans Fallback"
"Lucida Sans Unicode"="DroidSansFallback.ttf,Droid Sans Fallback"
[HKEY_CURRENT_USER\Control Panel\Desktop\WindowMetrics]

"BorderWidth"="1"

"CaptionFont"=hex:f0,ff,ff,ff,00,00,00,00,00,00,00,00,00,00,00,00,bc,02,00,00,00,00,00,88,00,00,00,22,44,00,72,00,6f,00,69,00,64,00,20,00,53,00,61,00,6e,00,73,00,20,00,46,00,61,00,6c,00,6c,00,62,00,61,00,63,00,6b,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00

"CaptionHeight"="18"

"CaptionWidth"="18"

"MenuFont"=hex:f0,ff,ff,ff,00,00,00,00,00,00,00,00,00,00,00,00,bc,02,00,00,00,00,00,88,00,00,00,22,44,00,72,00,6f,00,69,00,64,00,20,00,53,00,61,00,6e,00,73,00,20,00,46,00,61,00,6c,00,6c,00,62,00,61,00,63,00,6b,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00

"MenuHeight"="18"

"MenuWidth"="18"

"MessageFont"=hex:f0,ff,ff,ff,00,00,00,00,00,00,00,00,00,00,00,00,bc,02,00,00,00,00,00,88,00,00,00,22,44,00,72,00,6f,00,69,00,64,00,20,00,53,00,61,00,6e,00,73,00,20,00,46,00,61,00,6c,00,6c,00,62,00,61,00,63,00,6b,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00

"ScrollHeight"="16"

"ScrollWidth"="16"

"Shell Icon Size"="32"

"SmCaptionFont"=hex:f4,ff,ff,ff,00,00,00,00,00,00,00,00,00,00,00,00,90,01,00,00,00,00,00,88,00,00,00,00,4d,00,53,00,20,00,53,00,68,00,65,00,6c,00,6c,00,20,00,44,00,6c,00,67,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00

"SmCaptionHeight"="18"

"SmCaptionWidth"="13"

"StatusFont"=hex:f0,ff,ff,ff,00,00,00,00,00,00,00,00,00,00,00,00,bc,02,00,00,00,00,00,88,00,00,00,22,44,00,72,00,6f,00,69,00,64,00,20,00,53,00,61,00,6e,00,73,00,20,00,46,00,61,00,6c,00,6c,00,62,00,61,00,63,00,6b,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00



  • 匯入登錄檔

regedit

開啟註冊表編輯器註冊表導入註冊表檔案選則font.reg開啟關閉註冊表編輯器



  • 修改預設字型、字體大小

gedit ~/.wine/drive_c/windows/win.ini

把以下內容插入檔案底部存檔


[Desktop]
IconTitleFaceName=Droid Sans Fallback
menufontsize=13
messagefontsize=13
statusfontsize=13
IconTitleSize=13


備註
如想瞭解什麼叫平滑化可參考平滑化(anti-alias)

上圖為有開,下圖為沒開,取決於你所使用的字型,請自行測試看那種較為美觀。



2009.1.28更新

在Nelson寫的教學瞄到還要在改一個地方﹙不改也沒關係﹚,可以調整文字大小。

進入Wine設定畫面
winecfg
選擇桌面整合,分別調整Message Box Text、功能表文字、提示區文字、當前標題欄文字這四個字型與字體大小。



一樣我有調好的登錄檔可以直接使用,我設定這四個為Droid Sans Fallback大小為12,如覺不適合請自行調整囉。



參考資料:
Wine / Crossover Office / Picasa Linux 繁體中文設置 UPDATED!!
wine中文字體設置及字體美化
cxoffice 中文調整

7 則留言:

  1. 這篇WINE中文化的教學給我很大幫助,非常感謝您!

    我一直以來,在使用wine時都有中文的問題,雖然在使用了參考文件(Wine / Crossover Office / Picasa Linux 繁體中文設置 UPDATED!!)的教學後,中文問題改善了很多,但是仍然有部份地方會有方塊字。
    像我這兩天玩美少女夢工廠4時,雖然遊戲能夠順利執行,但由於訊息部份的中文都是方塊字,根本無法閱讀,無法玩(其他像PSPad的檔名標籤、X-Change PDF viewer的介面...等都有相同狀況)。
    在使用了您的教學和reg後,目前能夠完全正常的使用中文了,我相信您測試出中文,一定也花了不少時間,查了不少資料(網路上wine中文相關的資料很雜,很多都已經無效或不需要了),因此留言感謝您。

    回覆刪除
  2. 阿呆好:
    之前都習慣用別人編好的so檔,置換一下中文就不會亂碼了,後來直到1.1.12版有段時間不能用這方法,本來想裝回舊版的,後來想想花點時間,看看能不能解決這問題,後來幸不辱命終於給我摸出來了,這樣也好不用等人編譯so檔!:)

    目前1.1.13用這方法也正常解決亂碼快樂使用中^ ^

    對了我有更新請調整字型大小請往上走:)

    謝謝你的鼓勵,我有研究新東西在分享出來:)

    回覆刪除
  3. 我安裝完ie4linux之後
    中文顯示都正常
    但是中文輸入會亂碼?
    請問一下大大
    有遇過這問題嘛^^

    回覆刪除
  4. 哇 實在是 太棒啦
    感謝你...

    回覆刪除
  5. 2020/3/09 依舊有效,我遇到亂碼的是Rpg Maker 遊戲「月藍傳奇」,作業系統是Manjaro19,進入後全都亂碼,我本來的嘗試,意外用亂環境變數等我不了解的東西,winecfg時會出現錯誤,然後遊戲亂碼,我重灌系統,照您的方法做之後,重新登入,問題被解決了,感謝您的付出,辛苦您了!

    回覆刪除