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