github地址: https://github.com/Andy1984/YWCLocalizeTool
使用方法
整個(gè)app分3欄
- 第一欄輸入要翻譯的文字
- 第二欄輸出翻譯完的文字
- 第三欄是國(guó)際化語(yǔ)言的對(duì)照表
- 第一欄第二欄下可以填寫目標(biāo)語(yǔ)言
實(shí)現(xiàn)思路
iOS國(guó)際化需要專人翻譯, 而如果項(xiàng)目不斷更新, 翻譯人員卻無(wú)法及時(shí)跟進(jìn)的話, 那么只有2種方式:
- 如果空缺, 展示英文
- 谷歌翻譯
接下來(lái), 我們具體分析一下如何在實(shí)戰(zhàn)中使用這2種方法
展示英文
蘋果并沒(méi)有提供直接的方式, 那么我們只好取巧. 那就是國(guó)際化的key, 就直接是英文, 哪怕key里有空格, 有標(biāo)點(diǎn)符號(hào), 也沒(méi)有關(guān)系
谷歌翻譯
谷歌翻譯的最大缺點(diǎn)除了詞不達(dá)意外. 如果10個(gè)字符串, 需要做10門語(yǔ)言的國(guó)際化, 必須不斷復(fù)制每一個(gè)字符串, 并不斷切換翻譯的語(yǔ)言. 非常挫, 本人于是寫了一個(gè)腳本實(shí)現(xiàn)功能, 首先要獲取要翻譯的國(guó)際化文字, 格式為
"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";
接下來(lái)的流程是
- 把上面的代碼, 作為一整個(gè)字符串處理
- 遍歷整個(gè)字符串, 把
;"
作為標(biāo)識(shí)符, 如果遍歷到;"
, 就當(dāng)做發(fā)現(xiàn)了一個(gè)要翻譯的對(duì)象 - 遍歷到
;"
, 再向前遍歷, 尋找"
- 獲取
"
和;"
之間的字符串 - 利用百度翻譯api, 進(jìn)行機(jī)器翻譯
- 獲取后, 在進(jìn)行替換
我本來(lái)想用谷歌翻譯的, 但是他收費(fèi), 而百度確實(shí)有免費(fèi)使用, 使用量大才收費(fèi)
[百度翻譯開(kāi)放平臺(tái)] (http://api.fanyi.baidu.com/api/trans/product/apidoc)
就用最簡(jiǎn)單的AFNetworking請(qǐng)求即可