iOS國際化(多語言設置)


最近公司的項目有可能向國外推廣,我們的app也要添加多語言設置,之前從沒有接觸過這方面的東西,感覺會很麻煩吧。上網查了一下,還行,主要是把語言轉換一下就可以了。下面就詳細介紹一下設置過程:

1,基本設置

第一步:先在Project的info里添加項目所要支持的語言

如上點擊“+”號會彈出所提供的語言,選擇所需要的語言就可以了

第二步:創建Localizable.strings(注意:文件名最好不要隨意更改,以免帶來不必要的麻煩)作為多語言對應的詞典,存儲多重語言。

(1)點擊Localizable.strings文件右側的Localiza...

(2)繼續在Localization里添加所要支持的語言,將其勾選上

第三步,此時,我們的前期工作基本就完成了,可以在Localizable.strings里隨意設置所需要支持的語言了。

假設,我們設置了簡體中文

"testName" = "多語言設置成功啦";

第四步,設置完對應的語言后,我們就可以去使用它啦

   NSString *nameStr= NSLocalizedString(@"testName", nil);  //獲取配置語言文字

    UIButton *btn = [[UIButton alloc]initWithFrame:CGRectMake(10, 100, 300, 100)];

    [btn setBackgroundColor:[UIColor cyanColor]];

    [btn setTitle:nameStr forState:UIControlStateNormal];

    [self.view addSubview:btn];

注意:

如果創建.strings文件是自定義的名字的話,如Internation.strings,那么調用的方式為:

NSLocalizedStringFromTable(@”title”,@”Internation”, nil)

NSLocalizedStringFromTable(@”name”,@”Internation”, nil)

當自定義名字后,使用NSLocalizedString的方式不起作用,這里要特別注意,注意,注意!!!(重要的說三遍);

 

2,應用名設置

(1)應用名設置與多語言基本設置的步驟大致是一樣的,只是創建的.strings文件的名字要為InfoPlist.strings。

(2)同樣以簡體中文為例,"CFBundleDisplayName" = "慧眼"。

(3)在info.plist文件中設置Bundle display name為CFBundleDisplayName即可。

 

3,StoryBoard設置

storyboard同Localizable.strings類似。當我們創建Localizable.strings對應的語言文件時,系統自動生成了storyboard對應的系統文件。假如我們在storyboard拖入了一個UILabel,我們想要直接在這里設置label的文本,這里就要用到了UILabel的Object ID了。

在對應的語言文件中添加如下格式的設置:

/* Class = "UILabel"; text = "測試"; ObjectID = "PXo-pJ-2Ml"; */

"PXo-pJ-2Ml.text" = "測試";

 

4,判斷系統語言

    NSArray *languages = [NSLocale preferredLanguages];

    NSString *currentLanguage = [languages objectAtIndex:0];

    NSLog(@"%@", currentLanguage);


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM