2018.3.10
demo下載地址 GitHub
demo是基于objective-c的純代碼實(shí)現(xiàn)蛋褥,已剝離xib作谭,關(guān)于xib的本地化實(shí)現(xiàn)豁状,這里沒(méi)有巢价。
README
1. Info.plist文件不可以本地化
因?yàn)楸镜鼗螅琁nfo.plist文件被移動(dòng)至本地化語(yǔ)言文件夾中立叛,項(xiàng)目根目錄下不存在Info.plist文件负敏,系統(tǒng)讀取不到元數(shù)據(jù),程序無(wú)法加載秘蛇。
2. 利用InfoPlist.strings文件和CFBundleDisplayName其做,實(shí)現(xiàn)應(yīng)用名稱的本地化顯示
但是,該本地化顯示僅支持跟隨系統(tǒng)語(yǔ)言設(shè)定赁还。
3.同樣的妖泄,通過(guò)在(2.)中的文件中設(shè)置相應(yīng)的權(quán)限的Key,也可以實(shí)現(xiàn)權(quán)限提示內(nèi)容的本地化
同理本地化顯示也僅支持跟隨系統(tǒng)語(yǔ)言設(shè)定艘策。
功能文件
簡(jiǎn)單的代碼為應(yīng)用實(shí)現(xiàn)多語(yǔ)言的功能蹈胡,不使用更加清晰的枚舉值來(lái)表示不同語(yǔ)言,是為了便于二次開發(fā)/自定義需求的實(shí)現(xiàn)朋蔫。
RFLanguageHelper.h
RFLanguageHelper.m
調(diào)用方式
1.在AppDelegate中的didFinishLaunchingWithOptions方法中調(diào)用初始化方法:
[RFLanguageHelper InitLanguageHelper:@"本地化多語(yǔ)言文件名"];
2.基本調(diào)用罚渐,示例代碼:self.title = RFLanguage(@"標(biāo)題");
3.多語(yǔ)言切換,示例代碼:詳見demo中的 ViewController.m 文件斑举。
補(bǔ)充
2018.3.30更新
發(fā)現(xiàn)的bug搅轿,
不同的手機(jī)版本,語(yǔ)言碼對(duì)應(yīng)的語(yǔ)言會(huì)不一樣富玷。璧坟。
解決方案如下,
新增一個(gè)方法 + (NSInteger)LanguageCodeViaKey:(NSString *)key
運(yùn)行時(shí)利用新的方法獲取到準(zhǔn)確的語(yǔ)言碼赎懦,而后做相應(yīng)的設(shè)定