最近要做一個應用要實現本地化,因爲使用的是xcode4,應用程序本地化的問題跟以前的版本還是有些不同,在網上找了些資料對於xcode4以上的版本資料還是相對較少,有些最後要通過手動創建文件,這樣操作實在是太麻煩,所以經過一個下午的研究,總算是成功了一點點,還是慶幸一下。先給出結果。
英語:
中文:
具體實現如下:
靜態本地化 : 加載的文件,如xib文件,圖像文件,還有實現應用程序名本地化
動態本地化: 顯示的字符串本地化
一。先做準備:設置程序本地化
在xcode點擊程序圖標:點擊Info選項->Localizationn,點擊“+”,選擇要添加的語言,簡體中文選擇Chinese(zh-Hans)
你會在你工程目錄下發現多了個文件夾,“zh-Hans.lproj",x-code使用.lproj作爲其本地化文件夾的擴展名。
二。設置xib文件本地化, 圖像本地化的方法是一樣道理的,可以根據用戶的顯示語言加載不同的xib文件
操作:點擊xib文件,在IB窗口中選擇選項選擇“File Inspecter",也就是第一個選項,選擇“Localization->"+"選擇添加的語言,
效果如下,原來的xib文件就會出現三角形,其下有兩個文件,因爲我的爲storyboard,但效果是一樣的。就可以實現將其本地化了,非常簡單吧
三。設置應用程序名本地化,
設置應用程序名存儲在應用程序的Info.plist文件中,我們例子實際上爲Localize-Info.plist,選擇文件,並不需要對文件進行本地化,而是使"Info.strings"本地化就可以了,在Localize.Info.plist,空白處右鍵,選擇Show Raw Keys/Values,就會看到應用程序名實際爲CFBundleDisplayName,我們只需要在對應的 Info.plist中添加以下代碼就可以了
英文版:
CFBundleDisplayName = "Localization";
中文版:
CFBundleDisplayName = "本地化";
效果圖:
四、加載的字符串本地化,
原理:在代碼中將加入的字符串加入NSLocalizeString宏中,啓動程序時,系統將根據語言加載相應的文件得到其對應的字符串文件,這個字符串可以通過系統將NSLocalizedString中的宏生成名爲“Localizable.strings”的文件,當然你可以自己去創建這個文件,然後手動是添加對應的字符串。,
labelName.text = NSLocalizedString(@"Name", @"The name is "); labelPassword.text = NSLocalizedString(@"Password:",@"The password is");
NSlocalizeString 第一個參數是內容,第二個參數將會轉化爲字符串文件裏的註釋。
轉化方法如下 :先關閉項目,打開終端,進入到項目的目錄,輸入genStrings 文件名.m就可以將該文件中的宏轉化爲相應的字符串文件,
效果如下:會看到生成"Localizable.strings",
打開文件,就可以交給翻譯人員去翻譯了
最後附上例子,這是必須的
總算把截圖搞上去了,分享一下。