根據(jù)當前設(shè)備語言自動切換顯示培遵。
幾個涉及到多語言本地化設(shè)置的:
1.應(yīng)用名稱
2.文字
3.圖片、素材
4.StoryBoard(Xib)
iOS國際化原理分析
核心思想就是為每種語言單獨定義一份資源选酗。iOS 就是通過xxx.lproj目錄來定義每個語言的資源唯咬,這里的資源可以是圖片凭需,文本染乌,Storyboard瘫辩,Xib等伏嗜。
一.配置多語言環(huán)境
選中項目 --> PROJECT(默認是選中TARGETS,切換下選擇項目) --> Info --> Localizations --> 設(shè)置多語言環(huán)境
1.點擊 + 添加語言
2.選擇 Use Base Internationalzation
二.應(yīng)用名稱國際化
1.在 info 里手動添加一行Bundle display name字段杭朱,bundle display name “XXXX”
2.編輯Info.plist
打開Info.plist,添加一個新的屬性Application has localized display name, 設(shè)置其類型為boolean阅仔,并將其value設(shè)置為YES
3.創(chuàng)建InfoPlist.string,并進行Localization配置
command + N弧械,添加InfoPlist.string八酒,注意名稱一定要是InfoPlist,string,添加后放入Supporting Files 下
Localization配置:
工作目錄結(jié)構(gòu)文件下單擊InfoPlist.strings,查看右邊的屬性刃唐,在Localization欄添加語言
選擇語言
Base與前面提過到的開啟Use Base Internationalization是有關(guān)聯(lián)的羞迷,只有開啟了全局Use Base Internationalization這里才會顯示。那為什么這里沒有勾選Base画饥,是因為Base做為一個基礎(chǔ)模板衔瓮,作用于Strings文件是沒有太大意義的,去掉Base意味著在Base.lproj中少了一個strings文件抖甘,APP大小也所有下降热鞍,這點對于圖片的Base也是這樣.
4.添加完成后打開對應(yīng)語言文件
三.文字國際化
1.創(chuàng)建Localizable.strings文件及配置,通創(chuàng)建配置Infoplist.string相同
2.在對應(yīng)語言的Localizable.strings中添加key=value;字串(各個語言文件中key要相同)
3.在代碼中使用NSLocalizedString(key, comment)來讀取本地化字符串衔彻,第一個參數(shù)是key的名字薇宠,第二個參數(shù)是對這個“鍵值對”的注釋,通常為nil
NSLocalizedString(x, nil);
注意:
如果你的strings文件名字不是Localizable而是自定義的話艰额,如other.strings澄港,那么你就得使用NSLocalizedStringFromTable(key, @"other", nil)來讀取本地化字符串,中間那個是@"other"文件名
四.國際化圖片
有兩種方式:
1.在不同語言的Localizable.strings中指定不同的圖片名稱,通過NSLocalizedString()獲取不同的圖片名稱后進行顯示不同的圖片(文字國際化類似)
2.點中你要本地化的圖片柄沮,如“商標.png”
然后XCode-> View-> Utilities -> File Inspector回梧,在Localization中點“+”添加chinese 废岂;在圖片左邊就會出現(xiàn)一個倒三角,點開就會出現(xiàn)(english)和(chinese)的2張圖狱意,并且在項目文件夾中會出現(xiàn)en.lproj文件和zh-Hans.lproj文件湖苞;en.lproj文件存放的是英文版圖片,zh-Hans.lproj存放的是中文版圖片髓涯,中英文圖片名字一樣袒啼,我們在文件夾中直接替換圖片就可以了,最后使用時直接使用正常名字就行了纬纪,如:“main.png”
設(shè)置語言環(huán)境
選擇語言
多語言下的圖片