怎样以最小的时间成本实现iOS项目的文案国际化----支持OC和Swift项目

前景:

最近经历了TuTu和Yaame 的开发之后,发现国际化过程占用了大量的时间成本。国际化过程工作量大,没有什么技术含量。

思考

能不能通过脚本来实现iOS项目的文案国际化的流程呢?把从获取项目内的文案,到翻译,再到更新到本地的Local文件内,最后修改项目内的代码。

方案

尝试 讲述一下需要用到的工具套件: * ReadChinese: 从项目内查找中文并过滤后,生成一份中文的本地化文件 * LocalStringChange: 将中文的本地化文件,进行格式化,提交给产品进行翻译. 翻译完成后,同步到google文档内 * 生成脚本:从google.docx 生成为项目内的本地化文件,可同时生成多个语言版本的文件 * ChangeLine: 根据翻译的英文自动生成对应的key * LocalLanguageToXcode:根据生成的本地化文件,批量替换项目内的中文字符串

1.从项目读取所有中文,过滤并导出一个中文格式的LocalStrings

打开ReadChinses项目并运行,导入项目地址,导入输出地址。如图:

生成如图的以中文为key 的Local文件

2.处理LocalStrings文件格式,导出一个Txt文档,交由翻译同学进行翻译

打开LocalStringChange项目,把刚才生成的文档,覆盖到项目内的文档里。替换输出路径,运行项目

得到如下文档

3.创建google.docx 文档,获取文档的id和密钥。并把中文放入文档

4.收到翻译文档后,贴到google.docx 文档的对应分栏内

5.使用ChangeLine 工程,根据对应的英文,自动生成关键key。将生成的key贴到google文档的关键key分类中

6.替换生成脚本里面的key和id,id在文档链接里,key在google文档的后台获取。 执行文档的生成脚本,生成本地的各个语种的LocalString文件

7.封装本地化获取多语言的方法

8.使用LocalLanauageToXcode,替换项目内的工程地址和封装的获取方法名。并运行项目

到此,项目内的中文已经全部替换为国际化格式。

成果

  1. 项目内的中文文案已全部转换为对应的多语音获取方法,并附有注释。
  2. 整个过程很大程度上降低了时间成本。
  3. 后期在多语音的新增上面实现了自动化更新。
  4. 该组件已为其他业务线的同学在国际化方向提供了帮助。

总结

  1. 做事之前要三思而后行,不然可能会浪费更多的时间
  2. 磨刀不误砍柴工,使用自动化脚本,不仅可以更 高效,同样可以对别人产生帮助。

作者介绍

  • 游成虎 高级iOS开发工程师

微鲤技术团队

微鲤技术团队承担了中华万年历、Maybe、蘑菇语音、微鲤游戏高达3亿用户的产品研发工作,并构建了完备的大数据平台、基础研发框架、基础运维设施。践行数据驱动理念,相信技术改变世界。