level 1
记得还是去年新玩时遇到这种现象,点击可执行程序,增强版主程序根本不弹出来,观察任务管理器,发现cpu和内存虽然有占用,但是硬盘占用只是一闪而过,然后就归零,程序就死在后台了。
当时不明白什么原因导致的,这次又遇到了,一个个mod排查,发现是mod汉化原因导致的。
自己机翻tra+简单改写tp2文件,tra文件为ansi+中文编码,而tp2文件里指明代码转换为由utf-8(实际是ansi)转化,这样安装mod没有提示错误,但是执行游戏却直接无法启动而只是常驻后台。
ansi tra文件,不转码,可以用细节描述mod修正乱码。
ulf-8 tra文件,转码,在游戏里会显示为乱码,但这种乱码只影响阅读,不影响程序的正常运行。
ansi tra文件,正常转码,这种游戏里完全正常。
这个转码,多数时候在tp2文件,但少数mod转码代码在lib文件里,比较隐蔽。
之前就看到说某种转码错误会导致游戏冲突,一直以为是游戏里对话或者文本里点击冲突退出,没想到是直接无法启动。
特意介绍出来,同样自行汉化和安装mod的同好遇到时可以参考。
2026年04月27日 03点04分
1
level 1
tra文件里没代码啊,就是纯文本,就一个main.tra
ACTION_DEFINE_ARRAY d2reload BEGIN main END
/* LAF HANDLE_CHARSETS
INT_VAR
from_utf8 = 1
infer_charsets = 1
STR_VAR
default_language = ~english~
tra_path = EVAL ~%MOD_FOLDER%/tra~
out_path = EVAL ~weidu_external/lang/%MOD_FOLDER%~
noconvert_array = ~d2noconvert~
reload_array = ~d2reload~
END*/
这是我给注释掉的转码代码,代码+ansi的tra文件,直接主程序就给干废了...
是一个泡裤奖励类似的物品mod。半年前的经历是直接用了别人安装过的mod安装文件,大概是备份或者转码工作区设置为了mod本地,导致安装后也是这种现象,当时不知道怎么破坏了安装文件,反正是重新下载的可以执行,用别人安装过的就挂掉。
ACTION_DEFINE_ARRAY fl#reload BEGIN game journal END
LAF HANDLE_CHARSETS
INT_VAR
infer_charsets = 1
STR_VAR
tra_path = EVAL ~AjantisBG1/Translations/~
noconvert_array = fl#noconvert
reload_array = fl#reload
END
这是正常的转码代码,差异在于前者大概指明是由utl-8(本来英文版是这个)转
2026年04月27日 06点04分
4
level 1
又看了一个娜丽亚罗曼史的转码代码,
ACTION_DEFINE_ARRAY deArnise_noconvert BEGIN Setup-deArnise END
ACTION_DEFINE_ARRAY deArnise_reload BEGIN END
LAF HANDLE_CHARSETS
INT_VAR
infer_charsets = 1
from_utf8 = 1
STR_VAR
// Translation folders directly in the mod folder (iconv directory to keep at the same place)
tra_path = EVAL ~%MOD_FOLDER%~
noconvert_array = deArnise_noconvert
reload_array = deArnise_reload
END
这样配合Utf-8的tra汉字没问题,就是reload里置空,
懂代码和蒙代码的区别。。。。
2026年04月27日 06点04分
5
level 11
看noconvert,不用管reload,安装过程有转码步骤的mod,noconvert列表里的文本用utf-8。没在这个列表的用ansi/GB。
2026年04月27日 10点04分
7
但看起来就是reload里的ansi给我主程序干废了。noconvert里就一个setup,为了用PI识别安装组件,直接复制的英文的utf-8,也可能是lib里还有啥奇怪的转码吧,就很稀奇。另一个同一mod作者的mod,大体情况都一样,却又没影响,正常启动。
2026年04月27日 11点04分