内容字号:默认大号超大号

段落设置:段首缩进取消段首缩进

字体设置:切换到微软雅黑切换到宋体

iOS项目:国际化翻译端和开发端自动同步

2018-06-08 19:01 出处:清屏网 人气: 评论(0

作为iOS开发实习生生涯的第一个任务,就是喊我调研一个国际化方案,最好是可以实现开发人员这边不用担心翻译的问题,只在意写代码;然后翻译端那边只管翻译,同步工作自动化完成。

做过iOS项目国际化的应该都知道痛点,所有需要翻译的字段都需要挨个添加到Localizable.strings或者其他的一些strings文件里面,这就需要翻译端那边提供翻译,然后开发人员这边挨个添加到里面。   而我的工作就是减少这一步,让开发人员只关心写代码。

我的思路是这样的:

思路很简单,但是要怎么去实施呢?

在开发端:Xcode6之后可以支持导出xliff文件,什么是xliff文件呢?xliff 文件其实就是 针对 string - translation - comment 的一个文件  ,具体导出过程和导入在百度或者谷歌上搜索可以搜索到大片。xliff文件里面包含了所有需要翻译成其他语言的关键字,并且你只需要在开发代码的过程中,将需要翻译的字段通过 NSLocallizedString 关键字进行标记,导出的时候它会自动获取并导出被 NSLocallizedString标记了的关键字。 而xliff文件是基于xml样式的,这个下面会讲。类似于这样:

翻译端:翻译端这边给我的要求是,他们只需要关心翻译或者增加删除修改需要翻译的关键字以及翻译过后的字段(很绕口   逃。   所以这时候就出现了问题,最开始我想到的是写一个web端来对xliff文件进行解析,把关键字提取出来供他们翻译,但是仅仅是用前端的话,当翻译后的文件需要重新下载,它很难自动对本地的文件直接进行操作。而!翻译端那边又要求 ,他们觉得下载这个过程太麻烦,不要这个过程;这就很难受了,最后我想了下,最后敲定用 客户端 (python)来实现这个方式。(当时我其实没接触过python和前端的开发,所以这俩个难度对我来说差别不大)

协作工具当然可以用svn或者git来实现,作为现在多人协助的中间工具,简直不能太适合。

好了,现在背景大概介绍清楚了(我猜应该清楚了。下面开始说说操作流程:

开发端在开发的时候首先利用 NSLocallizedString   对需翻译字段进行标记     --->     在某一特定的时候利用Xcode将xliff文件导出,并上传到git(这里我是写的脚本,在每天晚上的时候自动导出一次,并上传)   --->    翻译端在打开客户端的时候,先从git上面pull一次xliff文件,然后读入文件    ----->    呈现信息,翻译中......   ---->   翻译后,点击保存后会将翻译后的自动添加到xliff文件里面,然后上传到git      ----->   开发端在每次编译或者安装编译的时候自动从git上面pull xliff文件(这里我也是用脚本做的)

现在流程大概介绍清楚了(我猜应该清楚了。下面开始说说开发思路:

翻译端( 客户端):首先需要三个文件:1、python源代码(翻译人员操作的客户端)  2、需要解析的xliff文件  3、 一个保存关键字和翻译后字段的文件,我这里用的是excel表格。

首先在客户端运行的时候,会自动从git上面pull一次xliff文件(因为有可能在开发端那边增加了字段,pull一次就可以实时同步),然后把xliff里需要翻译的关键字提取出来(因为xliff文件是基于xml格式的,所以提取还是蛮容易的),然后根据提取的字段放入excel表格里面,类似于这样:

然后在python写的客户端是这样的:

点击读入按钮后,会呈现左边的文本。呈现出来的文本是直接从excel文件里面读的(因为excel文件不会上传到git,xliff需要上传到git,而如果直接从xliff文件里解析并读取的话,很可能会对xliff造成污染导致冲突等事件)。   ----->    直接对左边文本进行修改和操作,修改完后点击保存,会进行先对excel进行复写修改,然后根据excel文件的内容对xliff的文件进行修改,并上传到git。

以上就是客户端(翻译端)这边的开发思路,下面是开发端:

开发端这边就比较简单了,写一个脚本,脚本的思路是:每次项目build的时候就pull一次代码(这里可以做优化,比如时间间隔),在晚上的时间会导出一份xliff文件并上传。

分享给小伙伴们:
本文标签: iOS

相关文章

发表评论愿您的每句评论,都能给大家的生活添色彩,带来共鸣,带来思索,带来快乐。

CopyRight © 2015-2016 QingPingShan.com , All Rights Reserved.

清屏网 版权所有 豫ICP备15026204号