界面IOS

iOS国际化自动翻译的脚本实现

2016-08-29  本文已影响341人  Andy1984
licecap.gif

github地址: https://github.com/Andy1984/YWCLocalizeTool

使用方法

整个app分3栏

实现思路

iOS国际化需要专人翻译, 而如果项目不断更新, 翻译人员却无法及时跟进的话, 那么只有2种方式:

接下来, 我们具体分析一下如何在实战中使用这2种方法

展示英文

苹果并没有提供直接的方式, 那么我们只好取巧. 那就是国际化的key, 就直接是英文, 哪怕key里有空格, 有标点符号, 也没有关系

谷歌翻译

谷歌翻译的最大缺点除了词不达意外. 如果10个字符串, 需要做10门语言的国际化, 必须不断复制每一个字符串, 并不断切换翻译的语言. 非常挫, 本人于是写了一个脚本实现功能, 首先要获取要翻译的国际化文字, 格式为

"new_moments" = "WeChat Moments";

"new_collection" = "Wechat Favorites";

"new_yi" = "YI";

"new_weibo" = "Sina Weibo";

"new_qq" = "QQ";

"new_qzone" = "Qzone";

"new_more" = "More";

"new_sharePhoto" = "Share photo";

"new_shareVideo" = "Share video";

"lead_image_click_camera" = "Connect camera";

"lead_image_file_manger" = "Gallery";

"lead_image_button_capture" = "Photo button";

"lead_image_button_record" = "Video button";

"lead_image_capture_model_change" = "Switch modes";

"lead_image_capture_model" = "Single, Timer, Time-lapse, Burst";

"lead_image_record_model_change" = "Switch modes";

接下来的流程是

  1. 把上面的代码, 作为一整个字符串处理
  2. 遍历整个字符串, 把;"作为标识符, 如果遍历到;", 就当做发现了一个要翻译的对象
  3. 遍历到;", 再向前遍历, 寻找"
  4. 获取";"之间的字符串
  5. 利用百度翻译api, 进行机器翻译
  6. 获取后, 在进行替换

我本来想用谷歌翻译的, 但是他收费, 而百度确实有免费使用, 使用量大才收费
[百度翻译开放平台] (http://api.fanyi.baidu.com/api/trans/product/apidoc)
就用最简单的AFNetworking请求即可

上一篇下一篇

猜你喜欢

热点阅读