用XLIFF来做App的国际化
过时的 genstrings 命令,不要再用了 T_T。之前我一直觉得国际化是件很麻烦的事,即便是用个脚本导出文件,然后一个一个在string文件下对着key翻译,也会有疏漏的地方。
多人协作的项目,需要不停的在多语言文件中增加key,还要兼顾着翻译。客户最后给出了具体的翻译,还要找个人一个个语言来校对。为什么不能让国际化的工作充满爱?为什么不能轻松简单去做呢?幸好我在StackOverFlow搜索问题时,发现了答案。
原来从Xcode 6 之后,国际化的工作只需要从Xcode导出国际通用的xliff文件出来,对其进行翻译后,再导入Xcode就完成了。如果还在用genstrings 这种原始的做法,你一定是在用假的Xcode。

理想的国际化工作流程,如今可以简化成三步:导出xliff、翻译xliff、导入翻译好的xliff。开发者在需要国际化的地方,使用NSLocalizedString 来标记需要多语言化的字符。项目收尾阶段不再继续添加东西时,统一从Xcode里导出客户需要国际化的xliff文件,比如ja.xliff、en.xliff等等。Xcode 会自动帮你从整个项目中提取出需要国际化的字段,如代码里标记好的NSLocalizedString,或者是IB文件里元素。一个不漏的帮你生成好xliff。XLIFF文件里面包含很多便于翻译的辅助信息,通过XLIFF查看软件,无论是开发者,还是客户,或者是专业的翻译机构,都能够非常简单的把国际化工作做好。然后直接把翻译好的ja.xliff 或者en.xliff 通过Xcode导入到项目中就完成了。
这里推荐一个开源免费的XLIFF工具:XLIFFTool,实在是太好用了!一看界面我就意识到用xliff做国际化的必要性。通过软件可以直接帮你定位到还未翻译到的字段,简单直接不怕遗漏。
