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";
接下来的流程是
- 把上面的代码, 作为一整个字符串处理
- 遍历整个字符串, 把
;"
作为标识符, 如果遍历到;"
, 就当做发现了一个要翻译的对象 - 遍历到
;"
, 再向前遍历, 寻找"
- 获取
"
和;"
之间的字符串 - 利用百度翻译api, 进行机器翻译
- 获取后, 在进行替换
我本来想用谷歌翻译的, 但是他收费, 而百度确实有免费使用, 使用量大才收费
[百度翻译开放平台] (http://api.fanyi.baidu.com/api/trans/product/apidoc)
就用最简单的AFNetworking请求即可