最近公司作的項目須要向國外推廣,所以app須要添加相應的語言設置,爲此整理記錄下多語言設置的過程。若有不對的地方,歡迎各位大神指正。下面就詳細介紹下設置的過程:app
一、基本設置測試
第一步:首先在 項目工程-PTROJECT-Info中添加須要支持的語言spa
如上點擊「+」號會彈出提供的語言列表,咱們選擇項目須要支持的語言就能夠了3d
第二步:建立Localizable.strings(⚠️:該文件名不要隨意更改)做爲多語言資源對應的詞典,存儲多語言code
建立好後,接下來須要繼續作以下操做:blog
(1)選中Localizable.strings文件,點擊右側欄對應的Localize...資源
(2)在Localization裏添加所要支持的語言,並勾選string
第三步,通過以上幾步,前期的基本設置完成了,能夠在Localizable.strings裏設置所須要的語言了。以下所示it
第四步,設置好對應的語言後,就能夠去使用了。那麼能夠按如下方式去使用io
NSString * tempStr = NSLocalizedString(@"test_label", nil);
⚠️:
以上是對應的建立以Localizable爲名字的文件調用方式。若是設置的是自定義的名字,如test.strings,調用的方式爲:
NSLocalizedStringFromTable("name", "test", nil);
二、StoryBoard和Xib設置
storyBoard和xib設置同Localizable.strings相似。點那個咱們建立Localizable.strings對應的語言文件時,系統自動的生成了app中現有storyBoard對應的系統文件。對於後加的文件,咱們能夠選中文件,點擊右側的Localize...並勾選對應的語言便可。
好比在storyBoard和xib中有一個Label,它對以會有一個Object ID了。咱們能夠經過這個ID來設置對應的語言文本
不過這個建議是全部的UI界面都設置完成後,再去設置多語言。固然能夠經過對控件拖線,在代碼實現中設置多語言
三、應用名等相關權限多語言設置
應用名等設置與上面的幾個多語言設置的步驟是基本一致的,只是在建立strings文件的時候文件名要爲InfoPlist。
這裏以中文爲例,設置app名稱:"CFBundleDisplayName" = "測試";
四、判斷系統的語言
NSArray *languages = [NSLocale preferredLanguages]; NSString *currentLanguage = [languages objectAtIndex:0]; NSLog(@"%@", currentLanguage);
⚠️:經過[NSBundle bundleWithPath:[[NSBundle mainBundle] pathForResource:language ofType:@"lproj"]]設置app語言後,必定要記得從新設置window的rootViewController
好了,以上就是iOS多語言的相關內容