UTAU - 完整無亂碼漢化策略及資源配布

u1

 

完整漢化資源

以上資源是以漢化包的形式供安裝版的 UTAU 替換的,請先安裝 UTAU 原版,並用以上鍊接中的 res 文件夾與 utau.exe 替換原文件(夾)即可。

 

漢化方案

先從 UTAU非公式站 下載原版安裝包與漢化包 res 文件夾,安裝完成後將未經修改的 utau.exe 備份一份,這一份進行以下修改。

一、修改語言包

1. 用 VB Decompiler Pro 打開 utau.exe,逐個檢查窗體中的代碼,一共只找到加載了兩種字體「MS ゴシック」與「MS Pゴシック」;(這一步是用來參考的)

2. 用UltraEdit打開utau.exe,查找「VB6JP.DLL」,修改爲「VB6CHS.DLL」,多出的一位字符佔據後面一位結束符;

效果:可將未指定字體的控件全部改爲宋體。

 

二、修改字體

1. 查找在文件中用到的兩種日語字體「MS ゴシック」與「MS Pゴシック」,全部改爲「宋體」,後面用結束符 00 補上;

16進制查找「82 6C 82 72 20 83 53 83 56 83 62 83 4E」,修改爲「CB CE CC E5 00 00 00 00 00 00 00 00 00」;

16進制查找「82 6C 82 72 20 82 6F 83 53 83 56 83 62 83 4E」,修改爲「CB CE CC E5 00 00 00 00 00 00 00 00 00 00 00」;

效果:可將指定字體的控件全部改爲宋體。

 

2. 每一個修改字體的首位置,向上10個字節單位是表示該控件的字符集的代碼,如果是80(128D 日語),需要修改爲 80(134D 簡體中文),或修改爲 00(0D 語言中性);(我將其全部改爲00)

效果:可將指定字體的控件Charset全部適應中文系統,在文本中輸入非西文字符不會出現亂碼現象。

 

3. 針對 MessageBox 左上角標誌的處理,查找在文件中出現的「歌聲合成ツール - UTAU」的前 7 個日語字符的16進制代碼(亂碼爲「壧惡崌惉僣乕儖」)改爲你想要的標題,在這裏我用了「歌聲合成の軟件」。

16進制查找「89 CC 90 BA 8D 87 90 AC 83 63 81 5B 83 8B」,修改爲「B8 E8 C9 F9 BA CF B3 C9 A4 CE C8 ED BC FE」。

 

4. 保存文件並關閉

效果:可以打開檢查一下是否大部分文字都被修改成了宋體。

 

三、修改顯性字符串

1. 首先將漢化包中的所有用 SHIFT-JIS 亂碼轉換的文字復原(可以藉助EmEditor、Microsoft Word等工具),將所有繁體文字換回中文;(這一步用來參考)

 

2. 用 VBLocalize 打開剛處理完成的utau.exe,解析字符串結束後,跳轉到frmNoteProperty(音符屬性窗體),將偏移地址爲「0004D1DB」的「Others」按鈕的Width值Height值分別改爲1155與315,否則會顯示不下;

跳轉到frmEditFreqList,將下方9個Label的Top值全都改爲3900,否則會超出窗體顯示不全;

跳轉到frmAutoCombine,將Env type開頭的兩個 Label 長度拉大,不然顯示不下。

(其他控件位置大小等問題可以後續作細微調整)

 

3. 將所有能找到的字符串全部改爲中文,需要先將亂碼字符由 Shift-JIS 轉爲 GB2312 編碼,之後可藉助翻譯工具直接修改值;(可以參考漢化包 res 文件夾中的內容,這一步比較耗時間)

效果:幾乎所有文本與標籤控件的默認字符串都是中文了(除了幾個);

 

4. 在圖片欄找到四張灰白漸變圖片(分別是工具欄與進度條的背景色),用Photoshop新建文檔(寬度20,高度40,灰度,8位),用油漆桶工具將背景色改爲#F0F0F0或#E9E9E9,保存爲Windows格式8bit的BMP格式圖片,文件佔用空間應爲4.00KB;

在VBLocalize中將四張圖分別用剛纔保存的圖片替換。(這一步可以不做,主要是我覺得黑白漸變難看)

效果:註冊了UTAU的工具欄不會出現灰白漸變了;

 

5. 保存工程,輸出目標文件,改名爲utau.exe覆蓋原文件;

效果:在res文件夾不存在的情況下打開utau.exe,可以發現亂碼幾乎已經沒有了;

 

四、修改隱性字符串

1. 用GetVBRes打開剛處理完成的utau.exe,搜索資源語言設置爲「日語(日本)」,寫入資源語言設置爲「中文(簡體)」,原字符串字體設置爲「Ms PGothic, 128(字符集爲日語)」,替換字符串字體設置爲「宋體,134(字符集爲中文)」,按源字符串排列;

當然我是比較推薦兩個都選「語言中性」,兩個字體都設「宋體,134」,這樣複製粘貼比較方便。

 

2. 爲了避免錯誤,修改的字符串必須不能與程序代碼相關,以下是需要漢化的條目:(直接複製粘貼需要轉換編碼)

 

①是一句完整的日語句子,通常是提示信息,需要翻譯;翻譯之前最好對照一下res文件夾中Message.txt中的內容,如果在Message.txt中已經解釋了,推薦不要改(我就沒改);

②是一個日語短語,通常是控件顯示信息,需要翻譯;

③是一個文件類型過濾格式的字符串,用來配合CommonDialog使用,需要翻譯;

④如果①與②中含有類似{1}的替代標誌,需要原封不動地保留在翻譯結果中;

⑤「@echo」連接一段日語句子,作爲命令行的輸出語句,可以把後面的日語句子翻譯了,前者保留;

⑥查找字符串「(なし)」,它是沒有設置上方標籤時默認的「無」提示,但是不知爲啥無法從 res 中加載,因此手動改爲「無」;

⑦保存漢化任務,替換資源字符串;

 

效果:所有可能出現的日語信息全部被漢化。

 

補充說明:

最後我找到的未在 Message.txt 中解釋的有八句(其中兩句是頻率表編輯器的提示文字),分別作了翻譯,其他條目都可以從 Message.txt 中加載到。

自動音高線、自動元音組合、音量增益、頻率表編輯器、音源列表、輸入文本對話框、輸入值對話框、批量添加後綴、音量增益、Mode1音高編輯器,這些窗口是沒法從 res 文件夾內獲取漢化信息的,唯一的辦法只能用 VBLocalize 修改資源。

除了上面提到的「(なし)」,音源設定窗口的「全選(&A)」菜單項,音符屬性窗口的「0~100(normal=50)」的「~」符號,Process小窗口的關閉符號「×」,選項窗口音名錶示ComboBox裏的第二項「# 」與第四項「b 」,這些都是無法從 res 文件夾內獲取內容替換的,不過幸好可以在 VBLocalize 中改。

工程主窗口右下角M的位置,鼠標移過顯示的 tip 還是日文,我也沒辦法。


 

聲明:

1. 請勿在此漢化版本上做任何形式的二次漢化變更,僅供學習交流使用;

2. 請勿將此版本的 res 文件夾套用在別的 utau 中,會產生亂碼;

3. 我只是介紹漢化方案,當然歡迎有其他希望更精密、更人性化的漢化者對它用此方案再次漢化,就是需要儘可能少地在 GetVBRes 中修改字符串,因爲不確定那些字符串是否會被程序調用,所以我只修改了一小部分,對程序沒有影響;

4. 感謝的 @駱駝砍司機 @AB鮮 的協助;

5. 本漢化沒有侵犯任何人的著作權(除非你告訴我 AmeyaP 禁止他人本地化他的軟件並給出證明,本文章將立即刪除,資源也將立即停止配布),參考 @駱駝砍司機 的翻譯已獲授權,漢化方案與資源修改由本人從零原創,允許他人按照此方案漢化。

 

至精至簡

B站:https://space.bilibili.com/87172593/

 

2020.10.21