iOS國際化多語言方案-MultiLanguage-簡單幾步即可完成

??最近我們的iOS工程需要搞國際化,查資料學(xué)習(xí)咖杂,靜下心思考最后完成這份方案。這份方案是為了先解決我司當(dāng)前需求蚊夫,肯定不是最完美的诉字,拋磚引玉,歡迎大家提出建議知纷,為開源社會出一份力壤圃。
??先別BB那么多,搜這個問題的人肯定都是著急解決問題琅轧,我們先說怎么用伍绳,原理啥的感興趣后面再說!

1. pod 引入MultiLanguage

pod 'MultiLanguage'
2. 引入頭文件
//全局引入 乍桂,原因是有兩個分類需要在全局生效
import <MultiLanguage/Multi_language.h>
2. 設(shè)置當(dāng)前語言類型冲杀、添加映射文件路徑
//可動態(tài)設(shè)置,更改languageType后新建的頁面會更新語言
LanguageManager.languageType = @"en_GB";
//a. addMulitLanguageJsonFilePath:   最好是在main.m 中UIApplicationMain 函數(shù)調(diào)用之前調(diào)用
//b. 因為xib或sb中控件的多語言是在創(chuàng)建完成后開始,這時如果還未添加映射表睹酌,則會出現(xiàn)進(jìn)入第一屏沒有替換對應(yīng)語言的問題
//c. b中描述的機(jī)制权谁,可用在組件化的工程中。當(dāng)組件未啟動時忍疾,并不需要加載映射表闯传。合理占用內(nèi)存谨朝,當(dāng)組件需要啟動前卤妒,加載即可。(后期是否需要加入刪除機(jī)制字币,我準(zhǔn)備使用一段時間后再評估)
NSString *filePath = [[NSBundle mainBundle] pathForResource:@"multi-language" ofType:@"json"];
[LanguageManager addMulitLanguageJsonFilePath:filePath];
3. 運(yùn)行過濾腳本 (組件內(nèi)腳本需要python版本: #!/usr/bin/python3 则披,請自行升級或安裝)

??將MultiLanguage/Resources/Config.plist文件夾下的 RunFilterScript 字段設(shè)為YES,command +B 會彈出目錄選擇洗出,選擇你要處理的文件夾士复。腳本運(yùn)行后在會在桌面生成multi-language.csv表格。將表格拿去給翻譯人員翻譯。

Config.plist文件
RunFilterScript和RunScvToJsonScScript字段
生成的csv表格文件

??表格內(nèi)目前是四列分別為 key , zh_CN , en_GB , ja_JP阱洪,如有擴(kuò)展便贵,自行更改firstScript.py腳本即可。

3. multi-language.csv翻譯完成后冗荸,運(yùn)行轉(zhuǎn)換腳本

??將MultiLanguage/Resources/Config.plist文件夾下的 RunScvToJsonScScript 字段設(shè)為YES承璃,command +B ,選擇對應(yīng)csv文件轉(zhuǎn)換后,在桌面生成multi-language.json文件蚌本,將multi-language.json文件拖入主工程即可完成全部多語言配置盔粹。

4. 幾點說明

??1.平時需要RunFilterScript和RunScvToJsonScScript字段設(shè)置為NO,這樣便不會執(zhí)行python腳本程癌。
??2.為什么不直接生成和翻譯json文件舷嗡?我們產(chǎn)品要求導(dǎo)出格式為表格,有其他格式需求可自行更改腳本嵌莉。
??3.為什么不在腳本中使用google进萄、百度、有道自動翻譯烦秩?因為自動翻譯目前不夠信垮斯、達(dá)、雅只祠。如果有需要的小伙伴兜蠕,可自行編輯腳本。
??4.在Xcode的buildLog中可以查看此組件運(yùn)行的log 抛寝。如下圖所示:


MultiLanguage中腳本的執(zhí)行l(wèi)og

??5.github鏈接熊杨,歡迎大家提出改進(jìn)建議,使iOS項目國際化更加方便盗舰。
??6.大家若有好的想法或者集成上的問題可以在評論區(qū)交流

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末晶府,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子钻趋,更是在濱河造成了極大的恐慌川陆,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,214評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蛮位,死亡現(xiàn)場離奇詭異较沪,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)失仁,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,307評論 2 382
  • 文/潘曉璐 我一進(jìn)店門尸曼,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人萄焦,你說我怎么就攤上這事控轿。” “怎么了?”我有些...
    開封第一講書人閱讀 152,543評論 0 341
  • 文/不壞的土叔 我叫張陵茬射,是天一觀的道長鹦蠕。 經(jīng)常有香客問我,道長在抛,這世上最難降的妖魔是什么片部? 我笑而不...
    開封第一講書人閱讀 55,221評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮霜定,結(jié)果婚禮上档悠,老公的妹妹穿的比我還像新娘。我一直安慰自己望浩,他們只是感情好辖所,可當(dāng)我...
    茶點故事閱讀 64,224評論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著磨德,像睡著了一般缘回。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上典挑,一...
    開封第一講書人閱讀 49,007評論 1 284
  • 那天酥宴,我揣著相機(jī)與錄音,去河邊找鬼您觉。 笑死拙寡,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的琳水。 我是一名探鬼主播肆糕,決...
    沈念sama閱讀 38,313評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼在孝!你這毒婦竟也來了诚啃?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,956評論 0 259
  • 序言:老撾萬榮一對情侶失蹤私沮,失蹤者是張志新(化名)和其女友劉穎始赎,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體仔燕,經(jīng)...
    沈念sama閱讀 43,441評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡造垛,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,925評論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了涨享。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片筋搏。...
    茶點故事閱讀 38,018評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡仆百,死狀恐怖厕隧,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤吁讨,帶...
    沈念sama閱讀 33,685評論 4 322
  • 正文 年R本政府宣布髓迎,位于F島的核電站,受9級特大地震影響建丧,放射性物質(zhì)發(fā)生泄漏排龄。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,234評論 3 307
  • 文/蒙蒙 一翎朱、第九天 我趴在偏房一處隱蔽的房頂上張望橄维。 院中可真熱鬧,春花似錦拴曲、人聲如沸争舞。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,240評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽竞川。三九已至,卻和暖如春叁熔,著一層夾襖步出監(jiān)牢的瞬間委乌,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,464評論 1 261
  • 我被黑心中介騙來泰國打工荣回, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留遭贸,地道東北人。 一個月前我還...
    沈念sama閱讀 45,467評論 2 352
  • 正文 我出身青樓心软,卻偏偏與公主長得像革砸,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子糯累,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,762評論 2 345