本地化大型敏捷软件:卡巴斯基案例研究

Updated April 1, 2020
Bendihua daxing minjie ruanjian kasipsky anli yanjiu - Smartcat blog
Smartcat covers all your language needs with AI translation, AI content generation and AI human workflows.

领导大型软件公司的本地化工作本身就充满挑战。当这家公司转向敏捷实践时,情况会如何?挑战变得更加严峻,你必须迅速实施重大变革。 在本案例研究中,Ekaterina GalitskayaDarya Egorushkina来自卡巴斯基文档与本地化团队,深入探讨他们如何借助Smartcat提升流程处理能力和效率的历程。

叶卡捷琳娜与达莉娅的后续文字

我们的团队负责为公司移动安全应用编写并本地化用户界面文本及帮助中心文章。下面我们将讲述如何以更可靠、敏捷和自动化的方式开展移动安全应用本地化工作。 我们将从促使变革的痛点切入,带您了解我们面临的挑战及最终提出的解决方案。本文希望能为那些不仅在开发环节,更在所有相关领域都面临敏捷转型挑战的中大型软件公司提供参考价值。

面包

与许多其他公司一样,卡巴斯基在某个阶段也转向了敏捷开发模式。这自然导致了更短的发布周期——如果我们以前每隔几个月推出一次新应用版本,现在则变成每两周一次。诚然,每次新版本包含的字符串数量减少了,但这帮助不大:我们仍需将这些少量字符串送入完整的本地化与语言测试流程,同时面临更紧迫的截止期限。

还有一种普遍误解认为移动应用只需少量文本。要是真这么简单就好了!以我们为例,单是用户界面文本,每个应用平均就有约25,000字,乘以约10个应用,再乘以每个应用约20种目标语言。而每周还有新的界面文本和文档文本不断涌入。

因此,本地化工作实质上成为了整个版本发布流程中的瓶颈。以往产品经理甚至连本地化团队成员的名字都叫不上来——毕竟所有翻译内容都像"凭空出现"般神奇——而如今,他们却不得不以远超预期的深度,全面了解所有相关问题。

在卡巴斯基,本地化流程通常包含两个阶段:翻译语言测试

翻译阶段的主要问题在于人工操作过多,这既源于所用流程,也受限于计算机辅助翻译工具的局限性。具体表现为:

  • 由于不支持多分支管道,我们不得不手动创建待译增量,后期再将其推送回分支。

  • 无法确保跨应用和跨语言的一致性。

  • 无法并行处理额外翻译请求,例如源文本在流程中发生变更时。必须等待基础翻译包完成后,才能继续处理增补内容。

  • 因"不可译文本"错误、未转义撇号及人为失误导致的构建失败问题日益突出。

至于语言测试阶段,可能需要长达两周时间,而实际翻译仅需三到五天。"语言测试究竟是什么?"——我们仿佛听见你们这样问道。
语言测试的主要目的是在上下文中检查整个翻译。我们确实拥有一支精通专业术语的强大翻译团队。但若在翻译时无法看到文本的上下文环境,甚至无法判断它是按钮还是标题,情况就会迅速恶化。

因此语言测试需要人工检查所有生成的应用界面,通常通过截图进行。这有助于发现诸如

  • 文本过长,超出屏幕元素尺寸。若省略的文本包含免责声明或财务信息,有时可能涉及法律问题。

  • 文本未被翻译,可能是译者失误或因文本被硬编码而非外部化为字符串

  • 文本在错误语境下翻译,例如按钮文本——如"下载"——在语法上应为不定式而非命令式。

仅截屏这一环节就耗费了惊人的时间。例如,若某项新功能涉及40个界面,且存在20种目标语言,则可能需要耗费多达70小时的手工机械化重复劳动。
总而言之,当每三个月发布一次新版本时,这种情况尚可接受。但随着发布周期缩短至每两周一次,本地化团队开始不堪重负。必须尽快解决这个问题。

我们有两个选择:

1. 雇佣经验不足的员工并减少本地化工作量——这两者都会自然导致质量下降,或者
2. 采用自动化处理。

我们选择了后者。

为何选择Smartcat

在选择CAT/TMS解决方案时,我们的首要考量是:

  1. 减少内部审批环节 — 包括预算审批、序列号生成等繁琐流程,

  2. 即用型基础功能 ——确保能立即投入使用,无需等待功能开发,

  3. 轻量级服务器要求 ——同样为避免冗长审批流程,

  4. 经济实惠(最好免费) 的服务入门门槛。

  5. 充足的技术支持,免去雇佣内部开发人员的需求,

  6. 安全要求——我们主动连接服务端,而非被动响应,

  7. 多分支支持 ——支持并行处理多个功能的翻译。

  8. 额外翻译任务可与原始批次并行处理。

在筛选候选方案时,最终仅剩两个备选名称:Smartcat 和 Zing——后者是由 Evernote 团队开发的持续本地化服务器。

我们青睐Zing的可定制性、免费安装包以及私有访问权限——它能部署在我们自己的组织内部。但其缺点在于安装过程远非易事,若要为所有译员和员工完成部署,将导致服务运营的时间成本过高。
于是我们选择了Smartcat。由于无法将CAT工具直接连接到内部版本控制系统,我们决定采用Smartcat–Serge集成方案。 (Serge是一款开源软件,用于在版本控制系统与翻译管理系统间同步字符串。它能识别多种格式文件中的字符串,将其转换为行业标准的PO格式,再传输至Smartcat。该软件可直接安装在我们的服务器上,确保机密信息绝不外泄。)

以下是我们对最终解决方案最满意的几点:

  • 它满足我们所有需求:多分支管道、额外翻译、安全性等。

  • 实时获取更新,无需下载或安装任何内容,

  • 借助Smartcat–Serge组合包,可为字符串创建自定义解析模式

  • 无需离开平台即可与处理文档的译员沟通

  • 平台市场可直接招募自由译员,满足产能扩展需求时

  • 所有语言项目仅需一张发票结算

  • 我们珍视获得的技术支持 ——Smartcat团队不仅协助我们建立工作流程,还优先开发了对我们至关重要的功能

  • 该服务几乎免费 ——最终我们因项目级全文搜索功能选择了订阅服务,但此举完全可选。

我们面临的挑战包括:

  • 最初无法在项目所有文档内搜索文本——该问题现已解决,Smartcat已实现此功能,

  • 自由译员有时会遗漏或忽略项目文档更新通知,因此我们需通过内置聊天功能手动发送提醒,

  • 项目经理需手动向译员发送邀请——但据悉该流程即将实现自动化。

基于迄今使用Smartcat的体验,我们相信其团队正积极解决这些问题。

前后对比

为了更清晰地说明情况,以下是关于我们过去与现在在流程和数量方面对比的说明。

流程

之前

在变更之前,我们需要在翻译和语言测试阶段完成近30个步骤:

翻译:

  1. 从代码库的不同分支中提取文本——手动操作,

  2. 创建待译增量——手动操作,

  3. 构建待译包,

  4. 上传至FTP服务器,

  5. 向代理机构、自由职业者或本地办公室发送大量邮件,

  6. 从FTP服务器获取完成的翻译,

  7. 导入CAT工具并检查内容是否正确,

  8. 手动将译文字符串上传至仓库,小心避免混淆分支——

  9. 运行构建流程,修复错误,完成构建,

  10. 请求补充翻译——本质上是重复相同流程。

语言测试:

  1. 启动构建并等待其完成,

  2. 若因本地化错误导致构建失败,则重启构建,

  3. 若无调试菜单,则配置专用测试环境,

  4. 为20余种语言截取所有相关屏幕截图,

  5. 协同质量保证团队确定如何获取缺失的截图,

  6. 创建并命名截图包,

  7. 上传至FTP服务器,

  8. 向翻译机构分配任务以检查译文,

  9. 解答翻译机构的疑问,

  10. 接收任务并实施修改,

  11. 执行构建——此过程有时耗时较长,

  12. 若出现错误则重新构建,

  13. 为回归测试截取新截图,

  14. 再次上传截图并向翻译机构分配任务,

  15. 再次与机构沟通所有细节,

  16. 若翻译内容有变更,则再次进行回归测试。

之后

现在我们所有阶段仅需九个步骤:

  1. 文案人员将新字符串提交至Git。Serge自动将字符串导入Smartcat,

  2. 本地化项目经理指派译员,

  3. 译员在上下文环境中进行翻译——截图和注释触手可及,

  4. 本地化项目经理审核并确认译文,译文随即自动回传至Git,

  5. 本地化团队运行功能截图机器人处理本地化文本,

  6. 本地化团队将本地化后的截图上传至FTP服务器并发送给语言学家,

  7. 语言学家对照本地化截图检查译文并进行必要修正,

  8. 修改内容自动同步至Git,

  9. 本地化团队关闭拉取请求。

仅此而已——通过将复杂度降低三分之二,我们真切感受到与以往流程的显著差异!

数字

所有数字均按单次发布(每两周一次)及单个应用计算。

步骤

开始前小时数

结束后小时数

从所有分支收集字符串

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平台的卓越表现。


附录。技巧与创意

以下是我们实施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">此处了解更多信息。

本地化与语言测试:

  • 如果您已建立术语库,请上传至Smartcat,以确保本地化内容的一致性。

  • 添加您的内部语言专家,让他们在接受实际工作前熟悉平台操作。

  • 寻找并筛选自由译员,引导其适应公司工作流程,确保他们掌握截图、评论、术语表等工具的使用方法。

  • 必要时寻找翻译机构,满足额外的本地化或测试需求。

希望这些建议对您有所帮助——如果您也有自己的见解,欢迎随时分享!
💌

订阅我们的新闻

电子邮件 *