前景:
最近经历了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,替换项目内的工程地址和封装的获取方法名。并运行项目
到此,项目内的中文已经全部替换为国际化格式。
成果
- 项目内的中文文案已全部转换为对应的多语音获取方法,并附有注释。
- 整个过程很大程度上降低了时间成本。
- 后期在多语音的新增上面实现了自动化更新。
- 该组件已为其他业务线的同学在国际化方向提供了帮助。
总结
- 做事之前要三思而后行,不然可能会浪费更多的时间
- 磨刀不误砍柴工,使用自动化脚本,不仅可以更 高效,同样可以对别人产生帮助。
作者介绍
- 游成虎 高级iOS开发工程师