1、如果只选utf8编码,只提取到已翻译的字串,其它的英文提取不到。
难道你没有将原始文件和要写入的文件分开?应该将原始文件和目标文件分开,即把原程序放在一个目录,目标程序放在另一个目录。比如原程序在 en 目录下,目标程序放在 zh 目录下,并在提取时选择 en 目录下的文件,把 Passolo 的翻译列表的目标文件设置到 zh 目录。
对英文来说,ANSI 和 UTF-8 都是一样的编码,非标宏都可以提取到。因为你汉化的文件只支持 UTF-8,所以建议你只选择 UTF-8,免得翻译后还要更改翻译的代码页。所以你说提取到已翻译的字串,我就判断你原始文件和目标文件没有分开。
2、原长写入后并未截断到,输出信息一直都是截断。
截断方式有二种,一种是按照原来的长度,超过原来的长度即被截断,另一种是字串后面的 00 字节可以被利用,超出这些可利用的 00 字节后仍然超长的即被截断。最大写入时可以利用这些 00 字节,而原长写入时后面的所有 00 字节都不可用。
未写入前,因为不知道你要采用哪种写入方式,所以默认是按照最大可写地址来判断是否被截断写入。只有在写入后,程序才能正确判断是哪种截断方式。你在原长写入后再过滤显示比较看看就知道了。
另外,截断写入后的字串并不会将字串列表中的翻译也一起截断,只是写入文件中的翻译被截断。所以需要你在写入后再进行过滤,并修改这些被截断的翻译,直至不被截断为止。
还有,经我再三测试,这个程序不需要修改字串前的字串长度标识符,因为修改了反而会出错。所以不要去选定自定义字串类型,如果你已经选定并提取了字串,可以在原始字串的编辑界面中,全选所有字串后,选择字串类型列表中的标准字串,然后保存,不需要重新提取。