CrossOver (Wine 商業版) 預設以英文語系運行 Windows 程式,導致中文軟體介面亂碼、字體缺失、輸入法無法呼叫。本文提供 **臨時修改 (單次運行)** 與 **永久修改 (修改 Wine 啟動腳本)** 兩種方案,讓 CrossOver 完美支援簡體/繁體中文環境。
終端機執行:
# 簡體中文
LANG=zh_CN.UTF-8 open -a CrossOver
# 繁體中文
LANG=zh_TW.UTF-8 open -a CrossOver
LANG 環境變數僅影響當次進程及其子進程。CrossOver.app → 顯示套件內容。Contents → SharedSupport → CrossOver → bin。wine 檔案 (無副檔名的 Shell/Perl 腳本) → 右鍵 → 以此開啟 → TextEdit (文字編輯器)。# Start Wine
if ($log or CXLog::is_on()) { ... }
exec $cmd, @wine_args, @args
or cxerr("unable to start '$cmd': $!\n");
exit 1;
exec $cmd, @wine_args, @args **前一行** 插入:$ENV{LANG} = "zh_CN.UTF-8"; # 簡體
# 或
$ENV{LANG} = "zh_TW.UTF-8"; # 繁體
# Start Wine
if ($log or CXLog::is_on()) {
print STDERR "\n** ", scalar(localtime(time)), "\n";
print STDERR "Starting '", join(' ', $cmd, @wine_args), "'\n";
print STDERR "'", join(' ', @args), "'\n\n";
}
$ENV{LANG} = "zh_CN.UTF-8";
exec $cmd, @wine_args, @args
or cxerr("unable to start '$cmd': $!\n");
exit 1;

bin/wine 是啟動器包裝腳本 (Perl/Shell)。$ENV{LANG} 影響 Wine 進程的 locale,進而決定:bin/wine 可能被覆蓋,需重新修改。建議備份原檔 cp bin/wine bin/wine.bak。LANG。
CrossOver 中文介面只需一行 $ENV{LANG} = "zh_CN.UTF-8"; 植入 bin/wine。臨時用 LANG=zh_CN.UTF-8 open -a CrossOver,永久改腳本。搞定語系,中文軟體在 Mac 上跑得像原生一樣順暢——這就是 Wine 魔法的最後一拼圖。