[iOS] 快速製作多國語系檔案

以下是筆記,製作多國語系的快捷作法的筆記。

前言

對於比較小型的App來說,可能頂多開發兩三國的語系就夠了,對應的字串表也不會太巨大,這樣的話還可以靠人力去修補,但對於比較大型的App來說,擴增到兩三百行或是五六種不同的語系,對於開發者來說並非容易的事情,這時就需要一些工具來輔助了。

對於多國語系的檔案,如果要整理的話,羅列成像是excel一樣的表單是最好不過了,然後可以自動對於不同的欄位去輸出成不同語系的話那就更棒了。本篇文章就是基於這樣的前提下而寫的。

開始

你需要的是:

  • csv檔案:存放多國語系的表格
  • Babelish:用來轉換csv檔案成.string檔案的library
  • sh檔案:有沒有都可以,主要是存放指令,讓你方便處理

有這幾樣之後,就可以開始了。

首先是安裝Babelish,請參考他github上面的說明。

然後製作你的字串表,如果你不是很確定csv裡面表格的格式,可以參考github裡面的範例

最後是你要輸出成各國的string檔案的作法,老實說這是最困擾我的部份,因為之前成功的指令我忘記了,所以後來找了很久,這邊我介紹一個不錯的技巧。

在終端機裡面輸入

history | more

這個指令可以讓你查你之前輸入過什麼樣的指令,多虧他我才知道當初怎麼輸入的。更多內容可以參考這篇文章

指令說明

再來你可以製作一份.sh的檔案,這檔案是用來存放一個Babelish的指令,用來輸出.string的,當然你也可以選擇自己手動輸入。指令如下:

babelish csv2strings -i filename.csv -o Localizable -L en:en zh-rTW:zh-Hant zh-rCN:zh-Hans in:in ja:ja ko:ko ms:ms th:th vi:vi

我簡單作個說明,首先babelish csv2strings是指令,將csv轉換成string檔案,然後-i後面的是檔案名稱,你可以將filename.csv換成你的檔案名稱,記得要副檔名。

-o Localizable是輸出的string檔案的名稱,這邊就蘋果官方那邊的文檔應該目前是固定這個名稱的。

然後是欄位,以zh-rTW:zh-Hant來說明,zh-rTW表示我的csv檔案裡面的欄位的名稱,zh-Hant表示輸出的資料夾名稱,該資料夾裡面會放一個Localizable.string檔案。

SH檔案

如果你選擇作一份.sh檔案,把他放在和csv同一個資料夾下面比較方便,然後在終端機裡面輸入:

./csv2string.sh

csv2string是我給他取的名稱,你可以改成你的sh檔案的名稱。

留言