APK 汉化与多语言批量改文案
安卓修改大师 · 智改工坊

一次改完不返工:批量文案改动的范围写法与覆盖率抽查

文案在哪 · 范围怎么写 · 占位符怎么保 · 改完怎么抽查

汉化做久了会发现一个规律:翻错一条文案,用户看得出但不算致命;漏掉一条文案,用户一眼就能看到——半屏中文里夹着一行原文,比全英文还刺眼。 好消息是,漏改是可以被系统性地查出来的,前提是你在提需求的时候就把范围划清楚。

一、先认清战场:文案到底散落在哪些地方

把安装包拖进智改工坊建项目,反编译完成后项目目录就是一个完整工程。文案不会乖乖待在同一个文件里,它至少会出现在下面这些位置。

位置 典型载体 漏改的表现
字符串 / 数组 / 复数资源values/strings.xml、各语言目录、arrays、plurals最主要的战场,漏了就整片没改
布局里的硬编码layout 下的 text / hint按钮、输入框占位符没改,最容易被看见
清单里的名称应用名与各页面 label桌面名改了,任务列表里还是原文
代码里的硬编码smali 中的提示语弹窗与 Toast 冒出一句原文

两类"改不到"的东西要提前说明:服务端下发的文案不在安装包里,改包改不到;印在图片里的字得用重做的图去替换——后者正好用得上附件功能,把做好的图连用途一起交给 AI 就行。

字符串资源与多语言目录
同一个工程里,文案分散在资源、布局、清单、assets 与代码五类载体中

二、先定范围:这一批要覆盖哪几块

详情页中间的输入框就是和 AI 对话的入口,点「立刻修改」后需求原文连同日期写进项目的 history.ini,正文送进右侧 AI 窗口执行。 汉化最忌讳"一口气全包":范围越大,出问题时越难定位。建议按模块分批——这一批只做登录,下一批做首页与列表,再下一批做设置页。分批有三个好处:每批边界清楚、漏改容易查;出了问题可以把那一批需求原样填回重发;每批都能单独装机看效果。

起步方式
不知道怎么写就从话术库挑一条最接近的模板(六大分类共 3000 条,都写全了范围与验收),点「选择」填进输入框再改。
术语表走附件
术语对照表存成 txt 或 csv 当附件,写一句不少于 10 个字的用途说明,提交时会拼成「序号. 路径 —— 用途说明」跟着需求发。

三、需求怎么写才不漏:五件必须写进去的事

照着话术库那套"要做什么 / 细节要求 / 参数参考 / 范围 / 验收"的五要素骨架写,再固定补上下面五件事,覆盖率和安全性都会好很多。

  1. 写清位置范围:values 下的 strings / arrays / plurals、layout 里写死在 text / hint 上的文案、清单里的名称、assets 里的内置页面、smali 里的硬编码提示——逐项点名,别只写"全部文案"。
  2. 写清不能动的东西:不改 key 名(只改 value)、不改占位符(%1$s、%d、%1$.2f 一个不少)、不改转义(、\'、&)、不改 XML 标签与属性名、不改包名与代码结构。
  3. 写清"停手清单":被代码用来做判断的字符串不译——状态值、开关 key、正则、用于比较的常量,一改功能就悄悄坏了。
  4. 写清术语与风格:品牌名不译、技术名词保留英文,统一交给术语表附件,避免同一个词在三个页面出现三种译法。
  5. 写清验收动作:"能装起、能登录、能走一遍主流程,界面上不再出现原文"——验收要写成别人也能照着做的动作。
要做什么:把登录与注册相关的界面文案改成中文
细节要求:覆盖 strings.xml、layout 里硬编码的 text/hint、以及代码里的提示语;只改 value 不改 key;占位符与转义原样保留;术语按附件对照表执行
范围:只改面向用户展示的文案;用于状态判断的字符串、包名、代码结构一律不动
验收:装机后登录与注册页面全中文,断网与输错密码时的提示也已是中文

一句经验之谈:需求里写"不改什么",和写"改什么"一样重要。批量改文案最容易出的事故不是漏改,而是把某个不该动的字符串一起翻了。

四、改完怎么抽查:覆盖率四步对账

AI 改完会在项目目录留一个标志文件,主窗口每 2 秒轮询到就自动弹打包窗口:回编、对齐、签名、校验四步跑完,产物在 build 目录下。等打包的空隙,就可以开始对账了。

步骤 怎么做 看到什么算通过
条目对账改前改后各统计一次字符串条目数只改 value,条目数基本持平;有增删要能说出原因
搜残留搜原语言词根,以及 layout 里直接写死的文本剩下的命中要么已确认"本该保留",要么补进下一批
占位符核对搜一遍 % 与 的出现次数,与改前对比数量与配对没变——防崩溃的关键一关
多目录清点每个语言目录抽 3 到 5 条人工核对各语言目录都改到位,没有整目录被跳过

最后一步:装机走查,别在电脑前想象

勾上"打包后自动运行",程序会用 adb 找手机或模拟器,装上并用 am start 拉起(不是 monkey——新版安卓镜像里已没有它,且它失败时退出码还是 0,容易误判成功),再用 dumpsys 看一眼前台应用确认装对了包。手机上会用 scrcpy 把屏幕投到电脑,模拟器则被提到最前面。

  • 逐屏点:登录、首页、列表、设置、关于页,一个都不放过;
  • 专挑会弹文案的地方:弹窗、Toast、权限说明、空数据与错误提示——漏改最爱藏这儿,所以断网、输错、空列表这些异常路径也要走;
  • 切换系统语言:看对应语言是否生效、是否半中半英;
  • 图片文字:引导页、启动图上的字还是原文,就该走附件换图了。

设备侧的小状况都好处理:国内主流模拟器(雷电 / MuMu / 夜神等)装了但 adb 没连上会自动扫端口连上;模拟器装了没开,会搜出路径问你要不要帮开;手机没授权会提示你去点"允许 USB 调试"。

汉化覆盖率抽查
对账查的是"有没有漏",装机走查查的是"漏了会不会被看见"

五、六个常见翻车点与对策

这些都是批量改文案里的老问题,提前知道就能在需求或抽查里堵住。

翻车点 表现 对策
占位符丢失或改写界面显示 %1$s,或直接崩溃需求写明"占位符一个不少",抽查核对 % 数量
key 名被一起改掉引用失效,界面空白或露出资源名只改 value 不改 key
改了用于判断的字符串 / 只改了一层语言开关失灵;切换语言后仍是原文停手清单写进需求;多目录抽样清点
文案变长后截断按钮文字被省略号吃掉装机看按钮与标题,必要时让 AI 精简措辞

翻车不可怕,可怕的是翻车后没法回退。每一批需求都会完整记进 history.ini(详情页按最新在上列出,点「选择」就能填回输入框),配合建项目时自动留存的 source.apk,改错方向的批次可以快速重来;出包时还会往工程里写一条含时间与账号的标记样式,几个包分不清来源时能回溯。

六、用户评价

以下摘录来自汉化组、出海团队与独立开发者,已获授权并做脱敏处理。

「以前一条条翻 strings.xml,最怕弹窗和 Toast 那种藏在代码里的文案。现在需求里点名写上"代码里的提示语也要覆盖",装机转一圈基本找不到漏网的。」
—— 小柯 · 应用汉化组
「术语表走附件这个办法是我自己摸索出来的:把对照表丢进去写清用途,同一个词整包就不会有三种译法,比自己翻完再统一省事。」
—— 阿哲 · 出海工具类 App 运营
「我现在按模块分批发需求,一批只改一个页面。改完直接装模拟器看,漏了哪条马上补一条,比一次性全包好收尾。」
—— 阿凯 · 独立开发者
「占位符这条我吃过亏,需求里现在固定写一句"格式参数一个不少",改完再搜一次 % 对数量,崩溃基本绝迹。」
—— 林工 · 企业内测打包
「scrcpy 投屏对校对帮助很大:手机屏直接投到电脑上,一边点一边对照术语表,不用举着手机来回切。」
—— 小雨 · 本地化自由译者
汉化与多语言使用者的反馈汇总
93% 认为"按模块分批提需求"是返工最少的做法
87% 会在需求里固定写上占位符与 key 的保护要求
90% 把"装机走查一遍弹窗与错误提示"列为必做
汉化使用者的反馈
反馈落脚点一致:范围写清楚、抽查走一遍,覆盖率就不再靠运气

七、合规提醒与一批文案的标准流程

请务必注意:本工具面向你自己拥有版权或已获得授权的应用,用于学习研究、企业内部定制、自有产品改包与二次开发等合法场景。请勿用于破解他人付费应用、去除他人版权信息、绕过安全机制或任何侵犯他人权益的用途。因使用不当产生的后果由使用者自行承担。

最后把整套流程压缩成一份可以照着做的清单:

  1. 建项目:拖入自有或已授权的包,等反编译完成(source.apk 已自动留好);
  2. 定范围:这一批只做哪个模块、覆盖哪几类载体,写进需求;
  3. 写需求:五要素 + 位置、不能动、停手清单、术语、验收,术语表走附件;
  4. 发修改:点「立刻修改」,AI 改完自动触发打包四步;
  5. 做对账:条目数、搜残留、占位符、多目录抽样,四步走完;
  6. 装机走查:勾上自动运行,逐屏点、专挑弹窗与错误提示、切一次系统语言;
  7. 留记录:批次需求留在历史里,下一批照着上一条改范围再发。
不遗漏,靠的不是细心,是流程
批量改文案这件事,凭手感查漏一定会漏。把范围写进需求、把对账做成固定动作、把走查放到真机上, 覆盖率就从"运气"变成了"结果"——而这套流程,一个窗口就能跑完。

本文所述操作均针对自有版权或已获授权的应用;用户反馈已获授权并做脱敏处理。