因為新項目需要用到國際化語言包瞄勾,自己就在網(wǎng)上借鑒了大神們的經驗,自己寫了一個swift版的方法弥激,不足之處进陡,還希望體諒。
一微服、項目設置國際化語言
1趾疚、UI顯示國際化
1.創(chuàng)建StringsFile文件,文件名需要設置為Localizable.strings(名字是和之后要調用的方法有關以蕴,方法不同糙麦,名字要求不同
2.點擊Localizable.strings文件,在右側詳情欄找到“Localize...”丛肮,然后直接點擊彈框的Localize按鈕
3.然后在工程中赡磅,找到Localizations詳情,點擊“+”號按鈕可以添加不同的語言包
添加新的語言包時直接點擊Finish即可
然后就會在項目中生成對應的語言包
4.在各對應的語言包文件添加自己想要設置的語言文字宝与,國際化語言包的編寫模式為”key” = “value”,前面key值隨便寫焚廊,只是個標識,通過這個標識可以找到對應的value文字伴鳖,不同的語言包value不同节值,但是key值一定要相同徙硅,同事要注意每一行的分號一定要寫上榜聂,不然會報錯:
注:在info.plist文件中Localization native development region屬性可以設置默認的語言類型
5.書寫工具類:LanguageHelper
6.調用
6.1在app delegate中初始化語言
6.2在選擇語言的類中注冊通知(記得移除通知),編寫接收到通知的調用方法
NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(LanguageTVC.changeLanguage), name: "LanguageChanged", object: nil)
func changeLanguage(){
//做些必要的處理嗓蘑,諸如重新設置已加載頁面的控件文字
}
6.3在選擇不同語言的時候調用設置方法须肆,設置不同的語言匿乃,并且發(fā)送通知
LanguageHelper.shareInstance.setLanguage("en")
LanguageHelper.shareInstance.setLanguage("zh-Hans")
NSNotificationCenter.defaultCenter().postNotificationName("LanguageChanged", object: nil)
7.調用文字獲取方法設置各界面控件的文字,如:
self.title = LanguageHelper.getString("selectLanguage")
2豌汇、權限國際化
1幢炸、創(chuàng)建StringsFile文件,文件名需要設置為InfoPlist.strings(名字只能設置成這個)
2拒贱、選中InfoPlist.strings文件后宛徊,勾選對應的語言生成不同的語言文件
3、設置key/value逻澳,在info.plist文件中闸天,選中對應權限項,右鍵點擊后選擇Show Raw Keys/Values斜做,對應的key值就顯示出來了苞氮,復制到InfoPlist.strings中作為key,value則自己設置對應的語言提示語
之后項目啟動的時候會自動根據(jù)用戶設置的系統(tǒng)語言進行顯示
3瓤逼、AppStore本地化笼吟,多語言顯示
如果項目是多地區(qū)發(fā)布的,一般會希望在AppStore顯示的時候霸旗,可以根據(jù)用戶地區(qū)不同而顯示不同的圖文展示贷帮,這時候就要使用到iTunesConnect的本地化了
1、修改App的主要語言定硝,在App信息中修改皿桑,需要已設置了多種本地化語言才能更改
2、如何設置本地化語言:一般只有在iOS App中多種語言下均設置了對應的圖文后蔬啡,系統(tǒng)會自動將對應的語言顯示在已本地化列表中诲侮。一般除了上傳對應的屏幕快照,還會設置對應的宣傳文本箱蟆、描述沟绪、關鍵詞等】詹拢看下圖片比較清楚: