转载

【iOS 国际化】如何把国际化时需要3天的工作量缩减到10分钟

痛点

如果 APP 要求国际化,其实添加国际化文字是很头痛的一件事。对于一个大型APP 来说,更是麻烦,而且工作量很大。通常替换国际化文字时,产品会给我们一个 Excel 表:

【iOS 国际化】如何把国际化时需要3天的工作量缩减到10分钟

我们需要做的事,就是把 Excel 表中的文字,添加到下面各个文件中:

【iOS 国际化】如何把国际化时需要3天的工作量缩减到10分钟

如果有 2000 条翻译,有 8 国语言需要添加,可想工作量有多大。

解决办法

我们目前手里只有汉语国际化文件,这里称为 source.strings 文件,还有一份全部翻译好的文件,这里称为 language.xlxs。

source.strings 文件中的内容如下:

"5-6_event" = "您已忽略了该事件";
"5-6_customer" = "账号已被封停";
"5-6_version" = "请更新版本后再申请提现";
"5-6_update" = "您的当前版本过低,请立即升级";

language.xlxs 文件中的内容如下:

【iOS 国际化】如何把国际化时需要3天的工作量缩减到10分钟

我们想做的就是把 language.xlxs 文件的内容转换成类似:

"5-6_event" = "You have missed this event";
"5-6_customer" = "account stop,please contact Customer Services";
"5-6_version" = "Please update new version before submitting withdrawal application";
"5-6_update" = "Please update to new version, your current version is outdated";
"5-6_event" = "귀하께서 해당사항 홀시 ";
"5-6_customer" = "계좌번호가 사용정지되어, 애프터 서비스와 연락할것.
"5-6_version" = "새로운 버전으로 갱신후에 다시 인출 신청할 것. ";
"5-6_update" = "귀하의 현재 버번이 너무 낮아, 즉시 승급할것. ";

这样的文件,然后把它导入到对应的国际化文件中

【iOS 国际化】如何把国际化时需要3天的工作量缩减到10分钟

这样就算完成了。

观察发现,这些都有规律可循,我们完全可以使用一个工具来做这些事,而不是手动。

TCZLocalizableTool

TCZLocalizableTool 可以帮助我们完成这些事,当然某些地方可能需要手动改一下。 如果觉得能帮到你,给个星星支持一下。它主要原理为:

【iOS 国际化】如何把国际化时需要3天的工作量缩减到10分钟

以汉语为例说明一下 TCZLocalizableTool 工作流程:

source.strings 其实是一个 plist 文件,可以把它转换成 key-value 的形式,这样我们可以拿到自己定义的 key 和 value;

解析 Excel 文件 language.xlxs 一般需要把它转换成 language.csv 文件;

读取 language.csv 文件中的每个值的时候,根据 source.strings 转换后的字典,可以找到对应的 key 和 value;

把结果导出为 csv 文件。

最终结果如图:

【iOS 国际化】如何把国际化时需要3天的工作量缩减到10分钟

正文到此结束
Loading...