1. 程式人生 > >【iOS 國際化】如何把國際化時需要3天的工作量縮減到10分鐘

【iOS 國際化】如何把國際化時需要3天的工作量縮減到10分鐘

痛點

如果 APP 要求國際化,其實新增國際化文字是很頭痛的一件事。對於一個大型
APP 來說,更是麻煩,而且工作量很大。通常替換國際化文字時,產品會給我們一個 Excel 表:

excel.png

我們需要做的事,就是把 Excel 表中的文字,新增到下面各個檔案中:

locailzable.png

如果有 2000 條翻譯,有 8 國語言需要新增,可想工作量有多大。

解決辦法

我們目前手裡只有漢語國際化檔案,這裡稱為 source.strings 檔案,還有一份全部翻譯好的檔案,這裡稱為 language.xlxs

source.strings 檔案中的內容如下:

"5-6_event" = "您已忽略了該事件";
"5-6_customer" = "賬號已被封停";
"5-6_version" = "請更新版本後再申請提現";
"5-6_update" = "您的當前版本過低,請立即升級";

language.xlxs 檔案中的內容如下:

螢幕快照 2017-08-24 下午2.14.14.png

我們想做的就是把 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" = "귀하의 현재 버번이 너무 낮아, 즉시 승급할것. ";

這樣的檔案,然後把它匯入到對應的國際化檔案中

locailzable.png

這樣就算完成了。

觀察發現,這些都有規律可循,我們完全可以使用一個工具來做這些事,而不是手動。

TCZLocalizableTool

TCZLocalizableTool

可以幫助我們完成這些事,當然某些地方可能需要手動改一下。 如果覺得能幫到你,給個星星支援一下。它主要原理為:

process.png

以漢語為例說明一下 TCZLocalizableTool 工作流程:

  • source.strings 其實是一個 plist 檔案,可以把它轉換成 key-value 的形式,這樣我們可以拿到自己定義的 key 和 value;
  • 解析 Excel 檔案 language.xlxs 一般需要把它轉換成 language.csv 檔案;
  • 讀取 language.csv 檔案中的每個值的時候,根據 source.strings 轉換後的字典,可以找到對應的 key 和 value;
  • 把結果匯出為 csv 檔案。

最終結果如圖:

Simulator Screen Shot 2017年8月24日 下午2.49.39.png

推薦閱讀

搭建微信小程式伺服器
Promise
微信iOS資料庫是什麼樣的

===== 我是有底線的 ======
喜歡我的文章,歡迎關注我的新浪微博 Lefe_x,我會不定期的分享一些開發技巧



作者:Lefe
連結:https://www.jianshu.com/p/2c77f0d108c3
來源:簡書
簡書著作權歸作者所有,任何形式的轉載都請聯絡作者獲得授權並註明出處。