iOS多語言本地化(國際化)設(shè)置

討論的iOS應(yīng)用中的多語言設(shè)置,Ok 一般是兩種情況:

1.根據(jù)當(dāng)前設(shè)備語言自動切換顯示

2.在應(yīng)用中可進(jìn)行語言設(shè)定

至今,我個人做過的項目中有6個是涉及到多語言的,其中全部都是需要在應(yīng)用中可進(jìn)行設(shè)置。 其實也沒多大關(guān)系,我們這里會首先說說根據(jù)當(dāng)前設(shè)備語言進(jìn)行切換界面的顯示(這些都是網(wǎng)上能搜到的,我整理下給自己清晰點的步驟以便后續(xù)查看罷了)。而關(guān)于在應(yīng)用在進(jìn)行語言設(shè)定,其實就是獲取當(dāng)前的語言環(huán)境并通過代碼進(jìn)行更改,其他的操作是一致的。


先來說說幾個涉及到多語言本地化設(shè)置的:

1.本地化應(yīng)用名稱

2.本地化字符串(文字)

3.本地化圖片、素材

4.本地化StoryBoard(Xib)


!!重點重點,以上都是廢話:

這里才是配置根據(jù)當(dāng)前設(shè)備語言自動切換顯示的步驟,不貼圖,不說明原因:

1.配置工程支持多語言

選中項目—>PROJECT(默認(rèn)是選中TARGETS,切換下)—>Info—>Localizations—>設(shè)置多語言環(huán)境

2.國際化應(yīng)用名稱

(1)創(chuàng)建InfoPlist.string,并進(jìn)行Localization配置:

在項目中點擊New File-->Resource-->Strings File -->更名為InfoPlist-->點擊創(chuàng)建。

選中InfoPlist.strings —>在Xcode右邊欄找到Localization—>在Localization中點“+”進(jìn)行配置。(如沒有則點擊 XCode—>View—>Utilities—>File Inspector)

(2)添加屬性:

在對應(yīng)InfoPlist.string文件中輸入以下代碼:

CFBundleDisplayName ="多語言測試";

注意:CFBundleDisplayName加不加雙引號都行,"多語言測試"便是對應(yīng)的應(yīng)用名。

(3)編輯Info.plist:

打開Info.plist,添加一個新的屬性Application has localized display name, 設(shè)置其類型為boolean,并將其value設(shè)置為YES即可

3.國際化文字

(1)創(chuàng)建Localizable.strings文件(一定是這個名字,是否使用的方法不一樣)并進(jìn)行進(jìn)行Localization配置。

(2)在對應(yīng)語言的Localizable.strings中添加key=value;字串(各個語言文件中key要相同)

(3)在代碼中使用NSLocalizedString(<#key#>, <#comment#>)來讀取本地化字符串。

注意:如果你的strings文件名字不是Localizable而是自定義的話,如wang.strings,那么你就得使用NSLocalizedStringFromTable(key, @"wang", nil)來讀取本地化字符串,中間那個是@"wang"文件名。

*多語言文本中也可包含可變內(nèi)容:通過以下代碼獲取:

NSString *string = [NSString localizedStringWithFormat:NSLocalizedString(@"密碼錯誤%ld次,還可以輸入%ld次",nil), 2, 1];

4.國際化圖片

有兩種方式:

(1)在不同語言的Localizable.strings中指定不同的圖片名稱,通過NSLocalizedString()獲取不同的圖片名稱后進(jìn)行顯示不同的圖片(這個就是通過國際化文字那個)

(2)參照國際化應(yīng)用名和文字的方式給圖片標(biāo)記兩種不同的語言顯示 (但將圖片放Images.xcassets中時時似乎沒有地方可以選擇國際化語言的)

5.國際化StoryBoard:(不建議)

在第1步配置工程多語言的時候就會提示包含的更改的文件,其中就有StoryBoard,選中即可。這樣便會出現(xiàn)一個Base文件和語言文件。

但有一個問題是更改了SB中的控件之后,語言包中的內(nèi)容不會對應(yīng)改變,所以我們的操作是暫時不支持國際化SB。


以上部分參考:http://blog.csdn.net/wangqiuyun/article/details/7875442

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容