UTAU - 完整无乱码汉化策略及资源配布
?
完整漢化資源
-
百度網盤:?https://pan.baidu.com/s/1NqYOfmnXDB5XsiO8JdmabQ?提取碼:?62yr
-
備用網盤:?https://www.lanzoui.com/b01bshs8j?密碼:1zmc
以上資源是以漢化包的形式供安裝版的?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個字節(jié)單位是表示該控件的字符集的代碼,如果是80(128D?日語),需要修改為?80(134D?簡體中文),或修改為?00(0D?語言中性);(我將其全部改為00)
效果:可將指定字體的控件Charset全部適應中文系統(tǒng),在文本中輸入非西文字符不會出現亂碼現象。
?
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?長度拉大,不然顯示不下。
(其他控件位置大小等問題可以后續(xù)作細微調整)
?
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,可以發(fā)現亂碼幾乎已經沒有了;
?
四、修改隱性字符串
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鮮?的協(xié)助;
5. 本漢化沒有侵犯任何人的著作權(除非你告訴我 AmeyaP 禁止他人本地化他的軟件并給出證明,本文章將立即刪除,資源也將立即停止配布),參考 @駱駝砍司機 的翻譯已獲授權,漢化方案與資源修改由本人從零原創(chuàng),允許他人按照此方案漢化。
?
至精至簡
B站:https://space.bilibili.com/87172593/
?
2020.10.21
總結
以上是生活随笔為你收集整理的UTAU - 完整无乱码汉化策略及资源配布的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: vos限制客户呼出时间
- 下一篇: cesium进行模型高度测量的代码片段