iPhone中使用NSLocalizedString實現國際化

一、獲取系統所支持的國際化信息
在國際化之前,你可以在iphone中的”設置->通用->多語言環境->語言”中來查看你的iphone支持哪些語言,當然也可以寫一段代碼測試一下你的iphone都支持哪些語言.測試代碼如下:

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];  NSArray *languages = [defaults objectForKey:@"AppleLanguages"];  NSLog(@"%@", languages);

注:NSUserDefaults類用來取得用戶人默認信息.

二、在Xcode中建立多語言文檔
1.在Resources分類下新建文檔(右鍵/Add/New File…)
2.在模板對話框中選擇Other,然後再選擇Strings File
3.將文件保存名設置爲Localizable.strings
4.在Localizable.strings 文件上按右鍵並選擇 Get Info
5.點擊信息界面的Make File Localizable,然後再將Tab標籤切換到General
6.輸入新的語言名稱 zh 後按 Add,有些時有English與zh兩種語言,你還可以增加其它語言.

三、在源代碼中使用NSLocalizedString來引用國際化文件

//括號裏第一個參數是要顯示的內容,與各Localizable.strings中的id對應 //第二個是對第一個參數的註釋,一般可以爲空串 [_alertView setTitle:NSLocalizedString(@"Submitted successfully",@"")];

四、使用Terminal的genstrings命令進行生成資源文件
打開Terminal,然後cd到工程所在的目錄,然後使用genstrings來生成自動從源代碼中生成資源文件.
例如,項目的目錄爲:/user/project/test01,則命令如下:

genstrings -o English.lproj  ./classes/*.m genstrings -o zh.lproj  ./classes/*.m

五、編輯各Localizable.strings文件
從第四步中得到了與代碼對應的資源文件,最後我們需要對這些資源文件翻譯成對應的語言就可以了.如在Localizable.strings(zh)中,把等號後的文字進行編譯成中文.

"Submitted successfully" = "提交成功"

本文簡單介紹下,如何不同的應用系統,對應於同一個應用程序來說,顯示不同的名字。

 例如我的這個遊戲,中文是水果連連看,那麼中文系統下載來顯示這個名字,修改了系統之後,顯示可能顯示的是FruitPuzzle,如果是日本語的話,顯示‘フールツパゼル’。

1. 將Info.plist本地化

在Info.plist上右鍵點選Get Info,在General標籤下,點擊Make File Localizable按鈕。
裏面會有一個默認的英文版本,點擊Add Localization… 按鈕,
例如我添加中文,zh-CN,和日文。

那麼這樣,我們回到xcode中,就可以看見,Info.plist,可以展開,變成三個。 分別是English,Jananese,Zh-CN

2. 創建InfoPlist.strings文件,並本地化它

在項目目錄下新建一個InfoPlist.strings文件,同樣按着以上的步驟進行本地化處理。保存。

3. 編輯InfoPlist.strings中的內容。

這樣InfoPlist.strings, 也是可以展開的了。也是變成三個。 分別是English,Jananese,Zh-CN。

然後在

English下面,添加一行:CFBundleDisplayName = "FruitPuzzle"

Janpanese,對應: CFBundleDisplayName = "フールツパゼル"

zh-CN對應:CFBundleDisplayName = "水果連連看" 


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章