IOS軟件國際化(本地化Localizable)
iPhone是支持語言最多的手機,它支持各國語言及中國少數名族如蒙古等語言,這也是好多少數名族都用蘋果的原因。在這一點上我們自主品牌還是要多學習學習。在IOS軟件開發中,可以通過幾步簡單的設置讓軟件支持多國語言。
言歸正傳,現在說說如何讓自己開發的應用支持多國語言,具體操作如下:
一、新建ios工程,工程名隨便,我這兒用的是Localizable聯系(本地化)。
二、新建完成打開后,點擊項目結構樹最上面的項目名Localizable聯系(本地化)(箭頭1指向的位置),會出現右側內容,然后點擊箭頭2指向的位置,就會出現項目的Info,這時候肩頭三指向的框中就是設置語言的地方。
三、點擊上圖中箭頭3指向的框中的+號,會彈出各種語言的選擇,這里默認已經有一個English的語言,假定我要添加漢語,那就在下拉列表中選擇Chinese(Simplified),點擊之后會彈出如下確定窗口,讓你選擇是否把選擇的語言添加到故事板和啟動畫面的故事板,默認兩個都選擇,我們不做改變,直接Finish。完成之后如右下圖所示。
四、完成以上步驟之后,右鍵項目資源樹,右鍵點擊New File,添加一個String File,如下圖所示,文件名為Localizable,注意,必須是Localizable。
添加完成后在項目樹里會出現Localizable.strings這么一個文件 。
五,選中此文件,然后按照下圖所示,打開右側面板,找到Localizable...這個按鈕並點擊,彈出一個勾選語言的彈出框,
點擊右側框住的上下箭頭,然后點擊語言選擇為Chinese(Simplified),然后點擊Localize按鈕,這樣就可以在上圖中右側面板中勾選語言,把English和Chinese(Simplified)都選中。
六、選中之后,左側的項目樹中Localizable.strings下面多處兩個文件,一個是Localizable.strings Chinese(Simplified)另一個是Localizable.strings English。這樣就完成了基本的設置。
接下來我們通過給應用中添加一個按鈕,讓這個按鈕的名稱在不同的語言環境下顯示不同的語言,即當我的手機語言為English的時候,按鈕顯示”OK“,當手機語言為漢語的時候,按鈕顯示“確認”。
1、在ViewController.m中viewDidLoad方法中添加如下語句,增加一個按鈕:
1 UIButton *myBtn = [[UIButton alloc]initWithFrame:CGRectMake(100, 200, 214, 80)]; 2 myBtn.backgroundColor = [UIColor orangeColor]; 3 myBtn.layer.cornerRadius = 20; 4 myBtn.layer.masksToBounds = YES; 5 myBtn.enabled = YES; 6 [myBtn setTitle:NSLocalizedString(@"myBtnTitle", @"這是按鈕myBtn的Title") forState:UIControlStateNormal]; 7 [self.view addSubview:myBtn];
注意在設置按鈕的title時,要用第6行的語句,即NSLocalizedString(@"myBtnTitle", @"這是按鈕myBtn的Title")來代替原來的字符串,這樣我們在后面才可以通過替換myBtnTitle,來設置在不同的語言中按鈕顯示不同的title。
然后打開之前第六步中的Localizable.strings Chinese(Simplified),添加一句"myBtnTitle"="確認";
同理,在Localizable.strings English中添加一句"myBtnTitle"="OK";
Got it,然后運行,模擬器上顯示分別如下圖:
這樣就完成了給軟件設置不同的語言。很簡單吧。
順便提一下,給軟件改名是設置Info.plist 中的Bundle Name.設置成你想要的名字之后,在手機上這個app的名字就會變成你設置的。
那應用程序的名稱如何國際化?方法如下:
1.首先要在Project->Info->Localizations里面加上你所需要的語言。(中文有兩種簡體是zh-Hans,正體是zh-Hant)
2.然后添加一個StringFile,命名為InfoPlist.strings。並且在文件屬性里將所需要的多國語言勾上。
3.完成2后會在InfoPlist.strings下面多出兩個文件,一個是InfoPlist.strings(English),一個是InfoPlist.strings(Simplified Chinese),先右鍵Info.Plist,使用SourceCode打開然后找到CFBundleName這一條並把這個字段復制出來,在InfoPlist.strings(English)中粘貼,后面加上="APP的英文名";同樣的操作在InfoPlist.strings(Simplified Chinese) 中粘貼,后面加上"APP的中文名";具體見下圖:
1 /* 2 InfoPlist.strings 3 軟件名字國際化 4 5 Created by mac on 16/4/15. 6 Copyright © 2016年 mzw. All rights reserved. 7 */ 8 CFBundleName="EnglishNane";
1 /* 2 InfoPlist.strings 3 軟件名字國際化 4 5 Created by mac on 16/4/15. 6 Copyright © 2016年 mzw. All rights reserved. 7 */ 8 CFBundleName="漢語名";
完成,模擬運行如下: