
说实话,刚进康茂峰那会儿,我也以为软件本地化就是"把英文界面翻译成中文"这么简单。直到参与第一个企业级SaaS项目,亲眼看着项目经理因为个按钮文字长度超了五个像素,导致整个安装包返工,我才明白——这事儿远不是找几个外语好的人就能搞定的。
软件本地化项目管理,本质上是在技术约束、语言质量、时间节点这三者之间走钢丝。康茂峰这些年做过的项目里,从几千行的移动应用到几百万代码行的企业级系统,流程 variants 很多,但核心逻辑其实就一条:让软件在不同文化环境里看起来像是"原生"的,而不是"翻译"的。
大多数项目出乱子,根子都在准备阶段埋的雷。康茂峰接新项目时,第一件事从来不是问"有多少字要翻",而是先当个侦探——把客户的底细摸清楚。
很多产品经理上来就说:"我们要进德国市场,把界面翻成德语。"这时候如果直接开工,大概率要踩坑。得追问:

这时候需要输出一份本地化需求文档(L10n Spec)。这份文档要细化到:哪些字符串在代码里hard-coded了必须抽出来、图片上的文字能不能编辑、音频视频是否需要重新配音、甚至是键盘快捷键的冲突检查(比如德语键盘的Z和Y是反的)。
这一步经常被忽略,但康茂峰吃过不少亏。有些客户的软件根本没做国际化(i18n)预处理,字符串和代码搅在一起,分离成本高得吓人。
技术审计主要看几个硬指标:
技术审计报告直接决定项目报价和工期。康茂峰通常会在这个阶段给客户两个选择:要么先做代码国际化改造(额外两周),要么接受高风险和高额度的后期bug修复费用。
准备妥当后,别急着开工。资源准备不是"找几个译员"这么潦草。
软件本地化译员和普通译员是两码事。康茂峰的译员库里,技术类项目必须要求:既懂目标语言,又看得懂代码注释,还得会用测试版软件。

举个例子,翻译"Abort"这个词。普通译员可能翻成"流产"(医学义),但软件语境里应该是"中止"或"终止"。再比如"Check out",在电商软件里是"结账",在版本控制软件里是"检出"。没有技术背景的译员根本分不清。
人员配置通常这样:
康茂峰每个长期客户都有专门的术语库。这个库不是简单的词汇对照表,而是包含:
翻译记忆库(TM)更值钱。以前翻过的句子,哪怕只有70%匹配,也能提示译员保持一致性。新项目启动前,导入历史TM,能省下20%-30%的时间,还能减少低级错误。
终于进入正式生产。但软件本地化不是印刷厂流水线,而是在技术限制里做创造性工作。
传统瀑布流模式(等开发做完了再给翻译团队)已经死透了。现在康茂峰的项目基本都是敏捷本地化——开发每两周发一个Sprint,翻译跟着同步走。
| 模式对比 | 传统瀑布流 | 敏捷持续本地化 |
| 交付节奏 | 开发完成→翻译→测试,串行 | 开发Sprint 1进行中,翻译Sprint 0内容,并行 |
| 字符串管理 | 一次性抽取所有资源文件 | 持续从代码库自动抽取新增/修改字符串 |
| 风险点 | 最后阶段才发现空间不够,返工成本高 | 需要开发团队配合锁定字符串冻结期,沟通成本高 |
| 康茂峰建议 | 适用于大型单版本发布(如年度大版本) | 适用于SAAS产品和持续迭代应用 |
敏捷模式下,康茂峰通常会在CI/CD流程里嵌入自动化钩子。开发人员提交代码后,系统自动识别出有变化的字符串,推送到翻译管理系统(TMS),译员在浏览器里直接翻译,审校通过后自动回写到代码库。
但这里有个坑:上下文缺失。译员在CAT工具里看到的往往是孤零零的"OK"、"Cancel"、"Settings",不知道这是按钮标题还是菜单项。康茂峰的解决办法是强制要求开发人员加注释(developer comments),并且在TMS里绑定截图——哪怕是个模糊的UI草稿图,也比纯文本强。
翻译完成不等于结束。康茂峰的质控分三层:
第一关:语言质量检查(LQA)
用checklist逐项核对:拼写、术语一致性、标点符号(中文用全角还是半角)、变量占位符({0}、%s这些有没有被破坏)。这一步主要靠工具和自检。
第二关:伪本地化测试(Pseudo-localization)
这是个技术活儿。在正式翻译前,先用一段脚本把英文字符替换成带重音符号的伪语言(比如"Hêllø Wörld"),或者把字符串自动加长30%,然后构建测试版本。如果在伪语言环境下界面错乱、字符串截断、硬编码文字暴露(因为伪语言只替换可外部化的字符串),就能提前发现i18n缺陷。
第三关:实际环境 linguistic testing
把翻译好的资源文件嵌入真实软件,在目标语言操作系统上跑。康茂峰的测试员会拿着病案本(不是真的医学病案,是测试用例),检查:
这三关下来,通常能拦截90%的低级错误。但说实话,软件本地化项目里,总有些bug要留到用户反馈阶段才能抓出来,尤其是那些只在特定屏幕分辨率才会炸的界面问题。
这是最磨人的阶段。翻译好的资源文件交给开发团队集成后,bug单(tickets)就会像雪片一样飞来。
康茂峰的经验是,bug要分级处理:
修复流程很折腾:测试员报bug→语言团队确认是翻译问题还是代码问题→如果是翻译问题,改资源文件→开发重新打包→测试回归验证。一个"保存"按钮被截断成"保"字的bug,可能要在开发、测试、语言团队之间来回踢皮球四五次。
这时候项目管理工具(康茂峰内部用自定义的工单系统)就显重要了。每个bug必须附带:截图、操作系统版本、语言环境、资源文件版本号。没有这些信息的bug单,直接打回去补充,省得大家猜谜。
终于到交付日。但交付物不只是翻译好的资源文件。
康茂峰的标准交付包包括:
但交付不是终点。软件上线后,用户反馈会涌来——"这个词在巴西葡萄牙语里太正式了"、"日本人习惯把姓放在前面而不是后面"。康茂峰会保留一个快速响应通道,在正式发布后的两周内,免费修复明显的语言错误(只要不是需求变更)。
比较操心的项目是那些需要持续本地化的。比如一个电商App,每周更新促销文案。这时候流程就转成维护模式:自动化脚本监控代码库变化,新增字符串自动推送翻译,24小时内完成更新并回流。康茂峰给这类客户配专属的语言团队,确保有人长期熟悉产品语境,避免换个译员就风格突变。
回过头看,软件本地化项目管理最反直觉的一点是:花在前期准备的时间越多,后期救火的时间越少。见过太多项目因为舍不得做i18n审计,最后不得不在发布后两个月重做多语言版本,那成本是前期投入的五倍不止。
说到底,这活儿是在管理不确定性——代码的不确定性、语言的不确定性、文化差异的不确定性。康茂峰这些年的教训总结成一句话就是:别指望第一次就做完美,但要把流程建得足够健壮,让错误能在失控前被拦住。
