1. 程式人生 > >iOS多語言設置

iOS多語言設置

nslocale tab ont table lang 系統文件 object inb ref

最近公司做的項目需要向國外推廣,因此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多語言的相關內容

iOS多語言設置