
如何用QuickBMS快速做游戏本地化翻译SLog命令与重导入实战教程【免费下载链接】QuickBMSQuickBMS by aluigi - Github Mirror项目地址: https://gitcode.com/gh_mirrors/qui/QuickBMSQuickBMS 是一款开源的多平台游戏解包引擎它内置的SLog 命令可以把游戏档案里的文本字符串直接导出成纯文本文件翻译完成后再用重导入Reimport功能把译文写回原档案——整个过程不需要你编写任何重打包程序。本文将带你完整走通导出 → 翻译 → 重导入的游戏本地化全流程并讲清三种重导入模式的差别与常见坑。一、为什么选 QuickBMS 做游戏本地化 大多数解包工具只能拆不能装把游戏文件解出来后改完文字就很难再塞回原档案。QuickBMS 的独特之处在于同一套 BMS 脚本既能解包也能重导入——提取和回写用的是同一个脚本文件省去了单独写重建工具的工作量SLog 命令专为本地化设计按行导出字符串到 UTF-8 文本文件翻译时一行一句改完即可回写跨平台Windows、Linux、macOS 通用源码见 readme.md 开头的介绍。官方说明The reimport feature of QuickBMS has already allowed to slightly mod and translate various games.——重导入功能已被社区用于多种游戏的 Mod 与翻译见 readme.md。二、获取 QuickBMS 与必备文件清单 两种方式任选其一# 方式一克隆源码仓库 git clone https://gitcode.com/gh_mirrors/qui/QuickBMS cd QuickBMS make # Linux/macOS需 openssl、zlib、bzip2 开发库# 方式二Windows 下使用官方发布的 quickbms.exeGUI 双击即可Linux 编译依赖可参考 src/Makefile常见问题用apt-get install gcc g zlib1g-dev libssl-dev unicode解决。拿到 QuickBMS 后重点关注 scripts/ 目录下的 5 个重导入脚本它们是本地化工作流的核心入口脚本实际执行的命令用途scripts/reimport.batquickbms.exe -G -w -r标准 REIMPORT 模式scripts/reimport2.batquickbms.exe -G -w -r -rREIMPORT2支持译文变长scripts/reimport3_localizations.batquickbms.exe -G -G -w -r -r -rREIMPORT3专为本地化文件设计可自动收缩/扩大档案scripts/reimport_4gb_files.batquickbms_4gb_files.exe -G -w -r处理大于 4GB 的档案scripts/reimport2_4gb_files.batquickbms_4gb_files.exe -G -w -r -rREIMPORT2 的 4GB 版本 注意reimport3_localizations.bat从文件名就能看出定位——它就是给语言/本地化文件准备的回写入口。三、SLog 命令详解一条指令导出全部游戏文本 SLog 的语法完整文档见 readme.mdSLog NAME OFFSET SIZE [TYPE] [FILENUM] [ID]参数说明本地化场景建议NAME输出文件名UTF-8、Windows 换行为空则自动命名固定命名如strings_zh.txtOFFSET0导出指定位置的字符串0从当前位置读取并前进多数脚本用-1顺序读取SIZE0固定长度读取0读到字符串结束符视游戏格式而定TYPE数据类型缺省为 String也支持long、unicode等数字类字段可用longID指定 ID 后只有匹配的字符串会被重导入只回写已翻译的行非常安全关键特性每行一条字符串多行文本通过\r、\n转义符写在同一行内反斜杠是 C 风格转义译文不能比原文更长SLog 回写模式下该限制与全局重导入规则一致多余空间用空格填充可用命令行-b选项改填充字节配合命令行选项-j可强制以 UTF16 输出适合需要 Unicode 字符串的引擎官方强烈建议用Notepad编辑并把编辑器切到INS覆盖模式从根源上避免译文超长。一个典型的导出脚本片段长这样set STRINGS_FILE string strings.txt slog STRINGS_FILE -1 -1 # 从当前位置按字符串读入并前进四、五步完成一次游戏本地化 备份原档案最重要的一步官方文档反复强调 Make a backup copy提取文本quickbms script.bms archive.pak output_folder翻译用 Notepad 打开 SLog 导出的文本逐行把原文替换为译文保持长度不超原文删除不需要回写的行重导入双击 scripts/reimport.bat或在命令行执行参数与第 2 步相同quickbms -w -r script.bms archive.pak output_folder运行游戏验证出错就回滚备份重来。命令行方式同样支持 GUI 流程-w开启写模式、-r开启重导入细节见 readme.md。五、三种重导入模式怎么选模式启动方式核心能力适用场景REIMPORT-r原位替换文件只能变短或等长译文长度可控、格式最简单的档案REIMPORT2-r -r自动重写 offset / size 字段超长文件追加到档案末尾译文明显变长、压缩格式复杂如 lz4REIMPORT3-r -r -r在 REIMPORT2 基础上自动收缩/扩大档案无 offset 字段时语言文件、顺序存放的文本档案——本地化首选选择建议一般游戏 Mod先试 REIMPORT纯文本/语言文件LNG、STR、DIA 等直接用 scripts/reimport3_localizations.bat档案超过 4GB换用reimport*_4gb_files.bat系列。REIMPORT2/3 的限制也需知晓见 readme.md目录TOC被压缩、位于档案尾部、或内容完全顺序无 offset 时不生效变量上最多允许一次数学运算否则会算错 offset。六、SLog 重导入的常见坑与避坑清单 ⚠️译文超长QuickBMS 只提示不中断请务必留意日志——这是最隐蔽的坑顺序 NUL 字符串新文本与原文之间的空隙默认填零0x00对连续 NUL 分隔的字符串可能有害此时应在译文里自己补空格只想回写改过的行给 SLog 传ID参数回写时只处理当前 ID 匹配的字符串未翻译的行可以安全删除校验是否改对了重导入加#选项写作-#可对比档案内外文件的 hash未修改的文件自动跳过更快更安全压缩回写较慢zlib/deflate/lzma 等重压缩耗时会明显变长属正常现象加密/CRC 档案依赖 MEMORY_FILE 做临时解密、带 CRC 校验的格式不支持回写遇到这类游戏建议寻找游戏专用重建工具。七、本地化常用命令行参数速查 ⚡参数作用本地化用法示例-l只列出文件不解包先看档案里有哪些文本文件-f {}.lng按通配符过滤文件只提取语言文件-o覆盖已存在的输出文件反复调试时免确认-j强制 UTF16 输出兼容 Unicode 字符串的 SLog-b C自定义 *Log 填充字节空隙填空格而非 0#按 hash 跳过未修改文件加速大批量回写-Z把档案内所有文件清零制作空档案分发再回写译文完整参数列表可直接在命令行不带参数运行 QuickBMS 查看选项说明见 readme.md源码实现位于 src/quickbms.c。八、加分项QuickBMS 还能反汇编游戏代码 做深度本地化时你可能需要看懂游戏的文本加载逻辑。QuickBMS 源码内置了完整的Capstone 反汇编引擎src/disasm/支持 x86、ARM、MIPS 等多种架构配合 BMS 语言的ASM类型可以直接在脚本里反汇编游戏二进制——这也是它区别于普通解包工具的地方。下图是 Capstone 引擎的官方反汇编界面示例小结QuickBMS 的游戏本地化工作流 SLog 导出文本 翻译 重导入写回三个动作覆盖从拆包到封包的闭环。新手建议按备份 → REIMPORT 试跑 → REIMPORT3 处理语言文件的顺序上手遇到 4GB 大档案再切换到quickbms_4gb_files系列工具。掌握这套流程后你无需为每个游戏单独写一个重打包工具几十行 BMS 脚本就能让翻译真正落回游戏里。【免费下载链接】QuickBMSQuickBMS by aluigi - Github Mirror项目地址: https://gitcode.com/gh_mirrors/qui/QuickBMS创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考