痛点
如果 APP 要求国际化,其实添加国际化文字是很头痛的一件事。对于一个大型APP 来说,更是麻烦,而且工作量很大。通常替换国际化文字时,产品会给我们一个 Excel 表:
我们需要做的事,就是把 Excel 表中的文字,添加到下面各个文件中:
如果有 2000 条翻译,有 8 国语言需要添加,可想工作量有多大。
解决办法
我们目前手里只有汉语国际化文件,这里称为 source.strings 文件,还有一份全部翻译好的文件,这里称为 language.xlxs。
source.strings 文件中的内容如下:
"5-6_event" = "您已忽略了该事件"; "5-6_customer" = "账号已被封停"; "5-6_version" = "请更新版本后再申请提现"; "5-6_update" = "您的当前版本过低,请立即升级";
language.xlxs 文件中的内容如下:
我们想做的就是把 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" = "귀하의 현재 버번이 너무 낮아, 즉시 승급할것. ";
这样的文件,然后把它导入到对应的国际化文件中
这样就算完成了。
观察发现,这些都有规律可循,我们完全可以使用一个工具来做这些事,而不是手动。
TCZLocalizableTool
TCZLocalizableTool 可以帮助我们完成这些事,当然某些地方可能需要手动改一下。 如果觉得能帮到你,给个星星支持一下。它主要原理为:
以汉语为例说明一下 TCZLocalizableTool 工作流程:
source.strings 其实是一个 plist 文件,可以把它转换成 key-value 的形式,这样我们可以拿到自己定义的 key 和 value;
解析 Excel 文件 language.xlxs 一般需要把它转换成 language.csv 文件;
读取 language.csv 文件中的每个值的时候,根据 source.strings 转换后的字典,可以找到对应的 key 和 value;
把结果导出为 csv 文件。
最终结果如图: