领导大型软件公司的本地化工作本身就充满挑战。当这家公司转向敏捷实践时,情况会如何?挑战变得更加严峻,你必须迅速实施重大变革。 在本案例研究中,Ekaterina Galitskaya 与 Darya Egorushkina来自卡巴斯基文档与本地化团队,深入探讨他们如何借助Smartcat提升流程处理能力和效率的历程。
叶卡捷琳娜与达莉娅的后续文字
我们的团队负责为公司移动安全应用编写并本地化用户界面文本及帮助中心文章。下面我们将讲述如何以更可靠、敏捷和自动化的方式开展移动安全应用本地化工作。 我们将从促使变革的痛点切入,带您了解我们面临的挑战及最终提出的解决方案。本文希望能为那些不仅在开发环节,更在所有相关领域都面临敏捷转型挑战的中大型软件公司提供参考价值。
面包
还有一种普遍误解认为移动应用只需少量文本。要是真这么简单就好了!以我们为例,单是用户界面文本,每个应用平均就有约25,000字,乘以约10个应用,再乘以每个应用约20种目标语言。而每周还有新的界面文本和文档文本不断涌入。
因此,本地化工作实质上成为了整个版本发布流程中的瓶颈。以往产品经理甚至连本地化团队成员的名字都叫不上来——毕竟所有翻译内容都像"凭空出现"般神奇——而如今,他们却不得不以远超预期的深度,全面了解所有相关问题。
翻译阶段的主要问题在于人工操作过多,这既源于所用流程,也受限于计算机辅助翻译工具的局限性。具体表现为:
由于不支持多分支管道,我们不得不手动创建待译增量,后期再将其推送回分支。
无法确保跨应用和跨语言的一致性。
无法并行处理额外翻译请求,例如源文本在流程中发生变更时。必须等待基础翻译包完成后,才能继续处理增补内容。
因"不可译文本"错误、未转义撇号及人为失误导致的构建失败问题日益突出。
因此语言测试需要人工检查所有生成的应用界面,通常通过截图进行。这有助于发现诸如
文本过长,超出屏幕元素尺寸。若省略的文本包含免责声明或财务信息,有时可能涉及法律问题。
文本未被翻译,可能是译者失误或因文本被硬编码而非外部化为字符串,
文本在错误语境下翻译,例如按钮文本——如"下载"——在语法上应为不定式而非命令式。
我们有两个选择:
1. 雇佣经验不足的员工并减少本地化工作量——这两者都会自然导致质量下降,或者
2. 采用自动化处理。
我们选择了后者。
为何选择Smartcat
在选择CAT/TMS解决方案时,我们的首要考量是:
减少内部审批环节 — 包括预算审批、序列号生成等繁琐流程,
即用型基础功能 ——确保能立即投入使用,无需等待功能开发,
轻量级服务器要求 ——同样为避免冗长审批流程,
经济实惠(最好免费) 的服务入门门槛。
充足的技术支持,免去雇佣内部开发人员的需求,
安全要求——我们主动连接服务端,而非被动响应,
多分支支持 ——支持并行处理多个功能的翻译。
额外翻译任务可与原始批次并行处理。
在筛选候选方案时,最终仅剩两个备选名称:Smartcat 和 Zing——后者是由 Evernote 团队开发的持续本地化服务器。
以下是我们对最终解决方案最满意的几点:
它满足我们所有需求:多分支管道、额外翻译、安全性等。
实时获取更新,无需下载或安装任何内容,
借助Smartcat–Serge组合包,可为字符串创建自定义解析模式,
无需离开平台即可与处理文档的译员沟通,
平台市场可直接招募自由译员,满足产能扩展需求时
所有语言项目仅需一张发票结算,
我们珍视获得的技术支持 ——Smartcat团队不仅协助我们建立工作流程,还优先开发了对我们至关重要的功能
该服务几乎免费 ——最终我们因项目级全文搜索功能选择了订阅服务,但此举完全可选。
我们面临的挑战包括:
最初无法在项目所有文档内搜索文本——该问题现已解决,Smartcat已实现此功能,
自由译员有时会遗漏或忽略项目文档更新通知,因此我们需通过内置聊天功能手动发送提醒,
项目经理需手动向译员发送邀请——但据悉该流程即将实现自动化。
基于迄今使用Smartcat的体验,我们相信其团队正积极解决这些问题。
前后对比
为了更清晰地说明情况,以下是关于我们过去与现在在流程和数量方面对比的说明。
流程
之前
在变更之前,我们需要在翻译和语言测试阶段完成近30个步骤:
翻译:
从代码库的不同分支中提取文本——手动操作,
创建待译增量——手动操作,
构建待译包,
上传至FTP服务器,
向代理机构、自由职业者或本地办公室发送大量邮件,
从FTP服务器获取完成的翻译,
导入CAT工具并检查内容是否正确,
手动将译文字符串上传至仓库,小心避免混淆分支——
运行构建流程,修复错误,完成构建,
请求补充翻译——本质上是重复相同流程。
语言测试:
启动构建并等待其完成,
若因本地化错误导致构建失败,则重启构建,
若无调试菜单,则配置专用测试环境,
为20余种语言截取所有相关屏幕截图,
协同质量保证团队确定如何获取缺失的截图,
创建并命名截图包,
上传至FTP服务器,
向翻译机构分配任务以检查译文,
解答翻译机构的疑问,
接收任务并实施修改,
执行构建——此过程有时耗时较长,
若出现错误则重新构建,
为回归测试截取新截图,
再次上传截图并向翻译机构分配任务,
再次与机构沟通所有细节,
若翻译内容有变更,则再次进行回归测试。
之后
现在我们所有阶段仅需九个步骤:
文案人员将新字符串提交至Git。Serge自动将字符串导入Smartcat,
本地化项目经理指派译员,
译员在上下文环境中进行翻译——截图和注释触手可及,
本地化项目经理审核并确认译文,译文随即自动回传至Git,
本地化团队运行功能截图机器人处理本地化文本,
本地化团队将本地化后的截图上传至FTP服务器并发送给语言学家,
语言学家对照本地化截图检查译文并进行必要修正,
修改内容自动同步至Git,
本地化团队关闭拉取请求。
仅此而已——通过将复杂度降低三分之二,我们真切感受到与以往流程的显著差异!
数字
所有数字均按单次发布(每两周一次)及单个应用计算。
步骤 | 开始前小时数 | 结束后小时数 |
从所有分支收集字符串 | 1 | - |
创建仅包含新增或更新字符串的增量包,并将其上传至支持20余种语言的CAT工具 | 4 | 0.25 |
创建20多种语言的翻译包 | 0.5 | - |
将20多种语言的翻译包上传至FTP服务器 | 0.5 | - |
与代理机构/译员沟通确认其可承接任务(支持20+种语言) | 2–3 | |
直接在平台上向机构/译员分配任务 | - | 0.25 |
回答译员提问 | 2–4 | 0.5 |
审核并确认翻译 | 1 | 0.25 |
运行构建 | 最多8 | 0.25 |
额外翻译 | 8 | 0.25 |
获取截图 | 16–32 | 使用自动截图工具获取8张截图 |
将截图上传至FTP服务器 | 8 | 1 |
与机构/翻译人员沟通并获取最终译文 | 8 | 1 |
更新资源文件 | 8 | 2 |
将更改写入Git | 8 | 0.25 |
每应用每次发布总耗时 | 84小时 | 14小时 |
奖金
我们还能继续改进,相信随着时间推移,定能找到更多提升本地化流程效率与质量的方法。最重要的是,本地化已不再是发布周期的瓶颈环节。我们认为,在如此短的时间内取得这些成果,既是团队的功绩,也是Smartcat平台的卓越表现。
附录。技巧与创意
以下是我们实施Smartcat后采取的具体措施。我们将这些内容整理成一份"速查指南",供其他希望效仿的企业和团队参考。虽然并非所有措施都易于实施,但多数都能帮助本地化流程更顺畅、更少出错。
集成:
测试 Git–Serge–Smartcat 集成,确保所有字符串都能顺利传输至 Smartcat 项目并返回。您不希望在生产阶段遭遇意外情况。
与软件工程师统一分支命名规范。这样就能设置机器人自动识别需要本地化的特定分支——为您和开发人员节省大量沟通时间。
根据需要自定义 Serge 的默认解析器。例如,我们使字符串 ID、注释和指向参考截图的链接对译员可见。
创建定时任务以查找本地化分支,依据上述商定的命名规则。
考虑使用Kaspresso框架进行UI测试和功能截图。例如,我们的开发人员为每个使用的字符串添加了截图链接。 当文件传至Smartcat时,截图链接会自动显示在"评论"标签页中。您可通过此链接了解Kaspresso及其应用价值。 href="https://proandroiddev.com/kaspresso-the-autotest-framework-that-you-have-been-looking-forward-to-part-i-e102ed384d11">此处了解更多信息。
本地化与语言测试:
订阅我们的新闻




