轉: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的方式不起作用,這里要注意;