支持的引擎 · GameMaker
GameMaker 游戏(较早的版本以 GameMaker Studio 之名发售)把编译后的数据放在一个文件里:Windows 上是 data.win,Linux 上是 game.unx,macOS 上是 game.ios。RuneTranslate 自己读写这个文件,不依赖任何第三方工具或 sidecar。它会沿着游戏的字节码追踪每个字符串,判断它是否会到达绘制或消息函数,因此玩家看到的文本会被提取出来供翻译,而查找键、文件名和游戏用来做比较的字符串则原样不动。游戏随附的语言文件(JSON、CSV、INI / 键=值、Yarn 和 Chatterbox 对话)以及 gettext 的 .po / .mo 语言包也会一并读取,标记和控制码会被遮蔽在占位符后面,翻译服务商无法把它们弄坏。你可以使用任何服务商翻译:DeepL、LLM(OpenAI / Anthropic)、免费的 Google 翻译,或本地模型。导出时,如果译文需要游戏字体里没有的字符(西里尔文、越南语、中文、日语、韩语、泰语、带重音的拉丁字母),RuneTranslate 会以匹配的风格把这些字形补进游戏自己的字体;对日语、中文和泰语,只会在能从游戏中确认文本框宽度的位置换行。每次导出在替换任何东西之前,都会被重新读取并逐字节验证。GameMaker 是新加入的引擎,已在用 GameMaker Studio 1.4、GameMaker Studio 2.3 以及 GameMaker 2022 LTS、2023 和 2024 版本制作的真实游戏上完成端到端验证。用 YYC(原生代码)编译的游戏是例外:它们的语言文件和字体可以翻译,但代码里的文本无法触及。源语言默认为日语,可按项目单独设置。
GameMaker 游戏会在数据文件及其语言文件里重复出现角色名、道具名和菜单术语。请先把它们加入术语表,让每一行都用同样的方式翻译。 术语表入门 →
把 RuneTranslate 指向游戏目录:Windows 上是包含 data.win 的文件夹,Linux 上是包含 game.unx 的文件夹,macOS 版本则是包含 game.ios 的文件夹。检测会自动识别数据文件,打开游戏不会改动任何内容。如果游戏是以安装程序形式提供的,请先安装。打包成单个可执行文件的 GameMaker Studio 1.4 游戏,会在导出时被解包成普通的游戏文件夹。
RuneTranslate 自己读取数据文件,不依赖第三方工具或 sidecar,并沿着游戏的字节码追踪每个字符串,判断它是否会到达绘制或消息函数。玩家看到的文本会成为翻译单元;查找键、文件名和游戏用来做比较的字符串原样不动。游戏随附的语言文件(JSON、CSV、INI / 键=值、Yarn 和 Chatterbox 对话)以及 gettext 的 .po / .mo 语言包也会列出来。
使用 DeepL、LLM(OpenAI / Anthropic)、免费的 Google 翻译或本地模型翻译。标记和控制码会被遮蔽在占位符后面,翻译服务商无法重排、丢弃或翻译它们,翻译记忆会复用重复的行。
把翻译后的副本导出到另一个文件夹,或者原地导出(部分 Steam 游戏需要这样)。如果译文用到游戏字体里没有的字符,导出会以匹配的风格把这些字形补进游戏自己的字体。对日语、中文和泰语,只会在能从游戏中确认文本框宽度的位置换行,并遵守禁则规则。对于 macOS 或 Linux 版本,只写出被改动的文件,由你复制覆盖到安装目录上。
每次导出在替换任何东西之前,都会被重新读取并逐字节验证。启动翻译后的游戏,在分享之前先在游戏里检查对话、菜单和字体。