支持的引擎 · Unreal Engine
Unreal Engine 驱动着一个庞大且不断增长的日语游戏库 — 而它打包游戏的方式与 RPG Maker 或 Ren'Py 作品截然不同。Unreal 把可翻译的界面文本(菜单、系统消息、物品和技能名称、字幕)保存在编译后的 .locres 本地化文件中,捆绑在一个或多个 .pak 归档里 — 常常是 AES-256 加密和 Oodle 压缩的 — 而在现代 UE5 上,则放在 IoStore 的 .utoc / .ucas 容器里,而非松散的 pak。RuneTranslate 全部都能读取。它用纯 TypeScript 解析 .pak 格式,用通过扫描发行版 .exe 自动恢复(或你粘贴)的密钥解密归档,读取你所翻译源语言对应的 .locres 条目,并列出每一条字符串。对于 UE5 IoStore 游戏,它会用内置的 retoc(开源 MIT 的 IoStore 工具)解包容器。你用任意服务商翻译,导出时 RuneTranslate 会把翻译写回 .locres,并交付一个小型、未加密的覆盖 pak — 以 _P『补丁』后缀命名,使 Unreal 最后挂载它并透明地替换原文,无需重新签名,也无需对游戏做数 GB 的重打包。这是一个新增的、尽力支持的引擎:.locres 涵盖了游戏 UI / 菜单 / 系统 / 字幕文本的绝大部分,但编译进 DataTables 或已烘焙 .uasset 数据块的对话不在范围内,你应在分享前于游戏内验证翻译后的版本。源语言默认为日语,但可按项目配置(中文、韩语、英语等)。
Unreal 的 .locres 文本以命名空间 + 键为索引,同一个物品、技能或角色名会在许多条目中反复出现。先把你反复出现的术语加进术语表,这样每个菜单和工具提示都会一致地呈现它们。 术语表入门 →
将 RuneTranslate 指向游戏目录 — 含 .exe 和一个 <Game>/Content/Paks 文件夹(内含 .pak 和/或 UE5 IoStore 的 .utoc / .ucas 归档)的文件夹。引擎检测会自动识别 Unreal 的 pak 尾部和 IoStore 容器;你的原始文件绝不会被修改。
如果 pak 经 AES 加密,RuneTranslate 会通过扫描发行版 .exe 自动恢复密钥 — 或者你可以在新建项目对话框中粘贴它(加密作品常在模组维基上公开其密钥)。未加密的游戏无需任何东西。UE5 IoStore 容器由内置的 retoc 辅助程序解包。
RuneTranslate 会从源语言的 .locres 中列出每一条可翻译字符串 — 菜单、系统文本、物品 / 技能名称、字幕 — 并把 Unreal 的 {0} / {Arg} 格式标记和 <RichText> 标记遮罩在占位符之后,使服务商无法弄坏它们。用 DeepL、LLM(OpenAI / Anthropic)、免费的 Google Translate 或本地模型翻译;可选的 AI 精修二次处理能收紧措辞。
导出时,RuneTranslate 会把你的翻译写回 .locres,并构建一个小型、未加密的覆盖 pak(以 _P 补丁后缀命名)— 外加一个简短的 README。它不会复制整个数 GB 的游戏。
把 _P.pak 复制进游戏的 Content/Paks 文件夹并启动。Unreal 最后挂载补丁 pak,因此它会用你的翻译替换原文 — 无需重新签名或 AES 密钥。分享前请在游戏内确认菜单显示正确。