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