根據(jù)當(dāng)前設(shè)備語言自動(dòng)切換顯示。
幾個(gè)涉及到多語言本地化設(shè)置的:
1.應(yīng)用名稱
2.文字
3.圖片、素材
4.StoryBoard(Xib)
iOS國(guó)際化原理分析
核心思想就是為每種語言單獨(dú)定義一份資源。iOS 就是通過xxx.lproj目錄來定義每個(gè)語言的資源,這里的資源可以是圖片,文本,Storyboard,Xib等。
一.配置多語言環(huán)境
選中項(xiàng)目 --> PROJECT(默認(rèn)是選中TARGETS,切換下選擇項(xiàng)目) --> Info --> Localizations --> 設(shè)置多語言環(huán)境
1.點(diǎn)擊 + 添加語言

2.選擇 Use Base Internationalzation

二.應(yīng)用名稱國(guó)際化
1.在 info 里手動(dòng)添加一行Bundle display name字段,bundle display name “XXXX”

2.編輯Info.plist

打開Info.plist,添加一個(gè)新的屬性Application has localized display name, 設(shè)置其類型為boolean,并將其value設(shè)置為YES
3.創(chuàng)建InfoPlist.string,并進(jìn)行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這里才會(huì)顯示。那為什么這里沒有勾選Base,是因?yàn)锽ase做為一個(gè)基礎(chǔ)模板,作用于Strings文件是沒有太大意義的,去掉Base意味著在Base.lproj中少了一個(gè)strings文件,APP大小也所有下降,這點(diǎn)對(duì)于圖片的Base也是這樣.
4.添加完成后打開對(duì)應(yīng)語言文件


三.文字國(guó)際化
1.創(chuàng)建Localizable.strings文件及配置,通創(chuàng)建配置Infoplist.string相同
2.在對(duì)應(yīng)語言的Localizable.strings中添加key=value;字串(各個(gè)語言文件中key要相同)


3.在代碼中使用NSLocalizedString(key, comment)來讀取本地化字符串,第一個(gè)參數(shù)是key的名字,第二個(gè)參數(shù)是對(duì)這個(gè)“鍵值對(duì)”的注釋,通常為nil
NSLocalizedString(x, nil);
注意:
如果你的strings文件名字不是Localizable而是自定義的話,如other.strings,那么你就得使用NSLocalizedStringFromTable(key, @"other", nil)來讀取本地化字符串,中間那個(gè)是@"other"文件名
四.國(guó)際化圖片
有兩種方式:
1.在不同語言的Localizable.strings中指定不同的圖片名稱,通過NSLocalizedString()獲取不同的圖片名稱后進(jìn)行顯示不同的圖片(文字國(guó)際化類似)
2.點(diǎn)中你要本地化的圖片,如“商標(biāo).png”
然后XCode-> View-> Utilities -> File Inspector,在Localization中點(diǎn)“+”添加chinese ;在圖片左邊就會(huì)出現(xiàn)一個(gè)倒三角,點(diǎn)開就會(huì)出現(xiàn)(english)和(chinese)的2張圖,并且在項(xiàng)目文件夾中會(huì)出現(xiàn)en.lproj文件和zh-Hans.lproj文件;en.lproj文件存放的是英文版圖片,zh-Hans.lproj存放的是中文版圖片,中英文圖片名字一樣,我們?cè)谖募A中直接替換圖片就可以了,最后使用時(shí)直接使用正常名字就行了,如:“main.png”


設(shè)置語言環(huán)境

選擇語言

多語言下的圖片
