轉:http://blog.csdn.net/samuelltk/article/details/8480403
前些天升級到Xcode4.5,現在正在用Xcode4.5+IOS6開發項目,當使用國際化時,遇到了一點問題,之前版本Xcode上建立Localizable.strings後,添加語言的“+”號不見了,找了半天無果,自己研究了下,後來在Stackoverflow上找到瞭解決方案,原來Apple把這個“+”號換地方了。下面來看看如何使用。
首先建立一個名為Localizable.strings的資源檔
完成後選中該檔案,在屬性選取器中可以看到多了個按鈕:
點擊這個按鈕後,出現國際化語言選擇框,但只有一個English的選項:
沒關係,繼續,點擊Localize按鈕,這時只支援英語。Xcode4.5之前的版本會在屬性選取器裡面有個“+”號用來添加其他語言支援,現在沒了,其實是在別的地方。點擊工程根目錄,並選擇PROJECT,然後選擇INFO選項卡,底部我們就看到了Localizations:
點擊“+”號選擇一門語言添加上,我這裡選的是Chinese,ok,完成了,再看Localizable.strings檔案,就多了兩個子檔案,分別支援英文和漢語:
在屬性選取器中也看到了English和Chinese:
這樣,就完成了在Xcode4.5上國際化的設定和操作,下面來看如何使用。
首先選擇Localizable.strings(English)檔案,添加如下內容:
"loading" ="Loading...";
然後選擇Localizable.strings(Chinese)檔案,添加如下內容:
"loading" ="載入中...";
內容注意一定要以分號結尾,否則無法識別。然後是在代碼中使用:
NSString *loading = NSLocalizedString(@"loading",@"");
系統會根據當前裝置的語言環境來識別使用中文還是英文,到此,在Xcode4.5上國際化的操作就完成了。
如果在命名.strings檔案為 Localizable.strings 時,那麼你就可以用以下方式調用即可:
NSLocalizedString(@
"title"
, nil)
此時這兩種方法的用途一樣:
- NSLog(@"Local string0: %@", NSLocalizedString(@"str0", nil));
- NSLog(@"Local string1: %@", NSLocalizedStringFromTable(@"str1", @"Localizable", nil));
如果建立.strings檔案是自訂的名字的話,如當前我起名為 Internation.strings,那麼調用的方式為:
NSLocalizedStringFromTable(@”title”,@”Internation”, nil) ;
當自訂名字後,使用NSLocalizedString的方式不起作用,這裡要注意;