如何在Xcode 4.5平臺上設置應用本地化?

幾經艱辛,項目終於到達尾聲,在上週給遊戲增加了簡體中文的本地化支持,這次本地化的內容主要有應用的名稱、字符串和圖片資源,IOS在本地化的支持還是很友好的,最後來個簡單的小結吧。因項目是在Xcode4上開發,本文的操作也是基於Xcode4,在Xcode3上,部分操作應該會有所不同。

1. 給項目增加語言支持:

打開項目的“Info“屬性編輯界面時,我們可以看到”localizations“一欄,如下圖所示,這就是設置項目本地化支持語言的地方,在這裏我們可以加入簡體中文(Chinese(zh-Hans))、繁體中文(Chinese(zh-Hant))等語種的支持。

1_設置應用語言.jpg

 

2. 應用程序名

一個Xcode項目可以建立多個target,每個target代表一個不同的應用(產品),而且每個target都有自己的Info.plist配置文件,應用程序名(安裝後在IOS設備上顯示的名稱)是在Info.plist配置文件裏設置。

Info.plist不能設置本地化,如果需要讓應用程序名以本地化形式顯示,則要創建一個名爲“InfoPlist.strings”的strings資源文件,在InfoPlist.strings裏設置應用程序名,設置方式爲 :"CFBundleDisplayName" = "要顯示的名稱"; App安裝後,應用程序名會顯示爲鍵“CFBundleDisplayName”的值。通過對InfoPlist.strings本地化設置,就可以實現應用語言的本地化。主要操作步驟爲:創建“InfoPlist.strings”文件 -> 選中“InfoPlist.strings” -> 打開右邊工具欄(Utilites) -> 在“Localization”欄目加入語種,如下圖所示:

2_應用名稱本地化_1.jpg

加入多個語種後,InfoPlist.strings文件下會多出一個三角箭頭,展開後,可以看到每個語種都會對應一個“InfoPlist.strings”文件(下圖所示),選中一個文件,改變“CFBundleDisplayName”的值,這樣就可以實現在不同的語言環境下顯示不同名稱的效果了。

2_應用名稱本地化_2.jpg

 

3. 本地化字符串

cocoa框架內置了兩個常用的宏來實現字符串的本地化:
  1. NSLocalizedString(key, comment)  
根據設備當前的語言環境自動加載對應的資源文件“Localizable.strings”,再返回資源文件裏Key的值,如果不存在“Localizable.strings”文件,或者key不存在,會返回key本身。

 

  1. NSLocalizedStringFromTable(key, tbl, comment)  
根據設備當前的語言環境自動加載對應的資源文件tbl,再返回資源文件裏Key的值,如果不存在tbl文件,或者key不存在,會返回key本身。
 

我們只要把字符串定義在strings資源文件裏,像應用程序名的本地化操作一樣,對strings資源文件進行本地化操作,再用使用上面2個宏讀取,就可以實現字符串本地化顯示了:

 
  1. //從文件“Localizable.strings”裏讀取Key爲“Localizable Demo”的值   
  2. NSString *title = NSLocalizedString(@"Localizable Demo", nil);   
  3.   
  4. //從文件“MyStrings.string”裏讀取key爲“test”的值   
  5. NSString *testString = NSLocalizedStringFromTable(@"test", @"MyStrings", nil);  

 

4. 圖片和其他資源文件

選中需要本地化的資源文件 -> 打開右邊工具欄(Utilites) -> 在“Localization”欄目加入需要支持的語言。xcode會把資源文件拷貝到新加入語言的的目錄下,把準備好的本地化文件替換掉xcode自動拷貝的文件即可。

一個完整的本地化程序例子

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