2016年2月11日 星期四

解決「修正 Wine 中文亂碼」及「『全域』設定」的問題

前文〝在 Fedora 安裝 Wine 與修正中文亂碼問題〞中,雖然找到方法解決中文亂碼的問題,總覺得有點不便,要修改的地方稍嫌多了一些。要改成『全域』設定 (使用者的 Wine 之預設設定) ,也不易找到修改之處。
  幾經查詢網路,找到的方法很多,但都沒有符合筆者要求的做法。
  • 從 Windows 複製字型檔至 Linux 系統,有些還放在使用者目錄。
  • 修改一大堆「註冊表」設定,有些提供「註冊表」匯入檔。
  • 要每個使用者個別設定,沒有「系統全域」設定步驟,一次設定全體適用。
最後,只好自己研究資料、對照 Wine 的設定檔;終於,得到一套可滿足筆者要求的步驟。

一、Wine 註冊表的字型替代設定

由 Wine 的「註冊表編輯器」左欄的索引鍵目錄,找到『 \HKEY_CURRENT_USER\ Software\ Wine\ Fonts\ Replacements 』這個索引鍵。在右邊欄位可以看到『替代字型』的設定,如下面的截圖中所示。
依照索引鍵目錄判斷,這些設定是 Wine 系統與 Windows 程式間的模擬程式用的。應是指出 Windows 程式的字型與 Wine 系統的字型對應關係,修改這些設定應該就可以改變 Wine 系統的『顯示字型』了。

二、安裝字型檔套件

由步驟一的截圖中可看出,有些字型檔未安裝、有些名稱不正確、而有些是有原本對應的字型。下表是整理出來的字型替代設定,
Windows 字型修改後之替代字型說      明
Arial Unicode MSArial原對應字型
BatangNanumMyeongjo未安裝
DotumNanumGothic
GulimNanumGothic
MS GothicVL Gothic Regular名稱不正確
MS MinchoIPAMincho未安裝
MS PGothicVL Gothic Regular名稱不正確
MS PMinchoIPAPMincho未安裝
MS UI GothicVL Gothic Regular名稱不正確
PMingLiuMicrosoft Yahei名稱不正確
SimSun文泉驛微米黑名稱不正確
上表中『修改後之替代字型』的正確名稱,可以在『 \HKEY_CURRENT_USER\ Software\ Wine\ Fonts\ External Fonts』這個目錄查得。

:『Microsoft Yahei』就是『文泉驛微米黑』字型的英文名稱。

  名稱不正確就修改它,未安裝的字型就補安裝,
[root@Core-i7 ~]# dnf install naver-nanum-myeongjo-fonts ipa-mincho-fonts ipa-pmincho-fonts
剛補安裝的字型,Wine 的「註冊表編輯器」不能立即查到名稱,

  • 關閉 Wine 的「註冊表編輯器」
  • 由『程式選單』的《應用程式》→《Wine》點選《Wine Boot》,重新啟動 Wine 系統。

再用 Wine 的「註冊表編輯器」就可以查得正確的字型名稱了。

三、修改個別使用者之 Wine 註冊表

如果 Linux 系統中,需使用 Wine 系統的使用者不多,可以用 Wine 的「註冊表編輯器」個別修改。想偷懶的話,也可以用「文字編輯器」開啟一個「註冊表匯入檔」 (假設檔名為『Replacements.reg』),將下列設定文字剪貼至「註冊表匯入檔」,
REGEDIT4

[HKEY_CURRENT_USER\Software\Wine\Fonts\Replacements]
"Arial Unicode MS"="Arial"
"Batang"="NanumMyeongjo"
"Dotum"="NanumGothic"
"Gulim"="NanumGothic"
"MS Gothic"="VL Gothic Regular"
"MS Mincho"="IPAMincho"
"MS PGothic"="VL Gothic Regular"
"MS PMincho"="IPAPMincho"
"MS UI Gothic"="VL Gothic Regular"
"PMingLiU"="文泉驛微米黑"
"SimSun"="文泉驛微米黑"
再將之儲存(儲存時「字元編碼」要設定為「傳統字漢語 (BIG5)」,或參考注意),
由 Wine 的「註冊表編輯器」匯入時,才不會發生錯誤。再重新啟動 Wine 系統後,所顯示的中文字型就不會出現『亂碼』或『□』了。

注意:如果不知道如何儲存「字元編碼」設定為「傳統字漢語 (BIG5)」的檔案,可以改貼這些設定,
REGEDIT4

[HKEY_CURRENT_USER\Software\Wine\Fonts\Replacements]
"Arial Unicode MS"="Arial"
"Batang"="NanumMyeongjo"
"Dotum"="NanumGothic"
"Gulim"="NanumGothic"
"MS Gothic"="VL Gothic Regular"
"MS Mincho"="IPAMincho"
"MS PGothic"="VL Gothic Regular"
"MS PMincho"="IPAPMincho"
"MS UI Gothic"="VL Gothic Regular"
"PMingLiU"="Microsoft Yahei"
"SimSun"="Microsoft Yahei"

四、修改『全域』 (所有使用者) 之 Wine 註冊表

管理者修改,所有使用者適用。
開啟「終端機」並切換為 root 身分,再開啟「文字編輯器」,編輯『/usr/share/wine/wine.inf』這個設定檔。約在第 589 ~ 599 列, 原文為
HKCU,Software\Wine\Fonts\Replacements,"SimSun",,"WenQuanYi Zen Hei Sharp"
HKCU,Software\Wine\Fonts\Replacements,"PMingLiU",,"WenQuanYi Zen Hei Sharp"
HKCU,Software\Wine\Fonts\Replacements,"MS Gothic",,"VL Gothic"
HKCU,Software\Wine\Fonts\Replacements,"MS PGothic",,"VL PGothic"
HKCU,Software\Wine\Fonts\Replacements,"MS UI Gothic",,"VL Gothic"
HKCU,Software\Wine\Fonts\Replacements,"MS Mincho",,"IPAMincho"
HKCU,Software\Wine\Fonts\Replacements,"MS PMincho",,"IPAPMincho"
HKCU,Software\Wine\Fonts\Replacements,"Batang",,"NanumMyeongjo"
HKCU,Software\Wine\Fonts\Replacements,"Dotum",,"NanumGothic"
HKCU,Software\Wine\Fonts\Replacements,"Gulim",,"NanumGothic"
HKCU,Software\Wine\Fonts\Replacements,"Arial Unicode MS",,"Droid Sans Fallback"
修改成
HKCU,Software\Wine\Fonts\Replacements,"SimSun",,"Microsoft Yahei"
HKCU,Software\Wine\Fonts\Replacements,"PMingLiU",,"Microsoft Yahei"
HKCU,Software\Wine\Fonts\Replacements,"MS Gothic",,"VL Gothic Regular"
HKCU,Software\Wine\Fonts\Replacements,"MS PGothic",,"VL Gothic Regular"
HKCU,Software\Wine\Fonts\Replacements,"MS UI Gothic",,"VL Gothic Regular"
HKCU,Software\Wine\Fonts\Replacements,"MS Mincho",,"IPAMincho"
HKCU,Software\Wine\Fonts\Replacements,"MS PMincho",,"IPAPMincho"
HKCU,Software\Wine\Fonts\Replacements,"Batang",,"NanumMyeongjo"
HKCU,Software\Wine\Fonts\Replacements,"Dotum",,"NanumGothic"
HKCU,Software\Wine\Fonts\Replacements,"Gulim",,"NanumGothic"
HKCU,Software\Wine\Fonts\Replacements,"Arial Unicode MS",,"Arial"
儲存檔案。當一個 Wine 的新使用者開啟 Wine 系統時,該使用者的『註冊表』就會是修改後的新註冊表。也就是說,所有使用者從一開始使用 Wine 系統就沒有『中文亂碼』的顯示問題。

已測試版本:

  • Fedora: 23

參考資料:

沒有留言:

張貼留言

感謝你耐心看完本文,歡迎留下任何指正、建議,筆者會儘快回應。(English is also welcome.)