以UIAlertView使用爲例,在不使用國際化的時候,咱們的代碼多是這樣寫的,以下,網絡
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"提示" message:@"網絡鏈接失敗" delegate:self cancelButtonTitle:@"取消" otherButtonTitles:@"肯定", nil]; [alert show];
這樣的代碼有什麼問題嗎?其實沒有問題,只是這樣將漢字內容直接寫在代碼裏面,老是有點不規範的感受。固然一個明顯的問題就是,這段話在中、英文的語言環境中都是顯示同樣的內容,因此我有必要作一下國際化來優化這邊的代碼。優化
給項目添加國際化的步驟以下,spa
一、新建->Resource->Strings File,新建Strings File文件,文件命名爲Localizable,以下圖,.net
這裏須要注意的是爲了國際化新建的Strings File必須命名爲Localizable,由於Xcode尋找國際化的內容就是根據Localizable文件來查找的,若是你隨便命名或者命名書寫錯誤,那麼就沒有下面的效果。code
二、將新建的Localizable.strings文件國際化,以下圖所示,orm
先選中Localizable.strings文件,
ci
而後點擊右側面板中的Localize..按鈕字符串
上面的步驟就是容許對Localizable.strings文件進行國際化,我不知道這麼說對不對,反正就是按照這個步驟,我是這麼理解的,大神看了不要見笑。
get
三、添加多國語言,好比簡體中文、英文,以下圖,string
選擇項目配置文件->Project->Info,下面有Localizations國際化配置信息,點擊"+"號,添加多國語言,以下圖,所示,
這裏我選擇了Simpled Chinese,表示添加了簡體中文國際化,English英語國際化是默認添加的,點擊之後出現下圖,
這裏只勾選Localizable.strings前面的複選框,表示只對Localizable.strings文件添加國際化,點擊Finish。這時候咱們發現成功添加了Localizable.strings國際化文件,看它分別對應有簡體中文版和英文版的文件,以下圖,
四、添加須要的不一樣語言字符串,
實現國際化,咱們在對應的簡體中文和英文的Localizable.strings中分別填寫不一樣的內容,以下代碼所示,
簡體中文Localizable.strings文件,
"REMIND"="提示"; "OK"="肯定"; "CANCEL"="取消"; "NetworkConnectError"="網絡鏈接失敗";
英文版Localizable.strings文件,
"REMIND"="Remind"; "OK"="OK"; "CANCEL"="Cancel"; "NetworkConnectError"="Cannot Connect Network";
以"OK"舉例來講,若是在中文狀態下,那麼它表示「肯定」;若是在英文狀態下,它表示"OK"。須要注意的是,不要遺漏結尾的分號「;」。
五、使用國際化文件,
使用文件中的內容,只須要使用NSLocalizedString(..,..)就能夠了,仍是以UIAlertView舉例來講,以下代碼所示,
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"REMIND", nil) message:NSLocalizedString(@"NetworkConnectError", nil) delegate:self cancelButtonTitle:NSLocalizedString(@"CANCEL", nil) otherButtonTitles:NSLocalizedString(@"OK", nil), nil]; [alert show];
這樣,代碼裏面沒有生硬的參雜中文,看起來簡潔多了,最重要的是若是將手機在中文和英文之間切換,那麼顯示的內容也分別對應中文和英文的狀態,以下圖所示,
中文狀況下,顯示中文,
英文狀態下顯示英文內容,