IOS開發技巧之國際化設置

以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];

這樣,代碼裏面沒有生硬的參雜中文,看起來簡潔多了,最重要的是若是將手機在中文和英文之間切換,那麼顯示的內容也分別對應中文和英文的狀態,以下圖所示,

中文狀況下,顯示中文,

英文狀態下顯示英文內容,

相關文章
相關標籤/搜索