美文网首页界面IOS
iOS国际化自动翻译的脚本实现

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

作者: Andy1984 | 来源:发表于2016-08-29 14:40 被阅读341次
    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请求即可

    相关文章

      网友评论

        本文标题:iOS国际化自动翻译的脚本实现

        本文链接:https://www.haomeiwen.com/subject/rkixettx.html