簡介
iOS實現語言的本地化很簡單,這裡只是為了簡單的記錄一下過程。 一、本地化storyboard上的字串
1.建立應用(如項目名為:LocalizationDemo)
2.添加本地化檔案
3.往Main.storyboard上添加一個label並設定內容為Setting
這時,我們查看Main.strings(Chinese(Simplified))檔案,裡面是空。
4.為了讓檔案自動填滿內容,有個小技巧:選擇Main.storyboard,然後在右邊的 Utilities 中選擇 Show the file inspector ,然後在Localization項將Localizable Strings切換到 Interface Builder Storyboard,之後再重新切換回去。
再次查看檔案,這時已經有如下內容了
/* Class = "UILabel"; text = "Setting"; ObjectID = "cWa-zv-jKP"; */"cWa-zv-jKP.text" = "Setting";
5.將Setting修改為設定
/* Class = "UILabel"; text = "Setting"; ObjectID = "cWa-zv-jKP"; */"cWa-zv-jKP.text" = "設定";
6.完成了,運行程式將預設語言改為中文即可看到設定字樣 二、本地化代碼中的字串 熟悉 NSLocalizedString的用法:參數一為key,參數二為注釋; 在代碼中,任何需要本地化的字串都用NSLocalizedString包裹起來,如輸出Test字串:NSLog(NSLocalizedString("Test", "輸出Test字串"));
匯出需要本地化的字串,有兩種方法:
a. 通過 genstrings 命令來組建檔案:開啟終端;用 cd 命令進入到項目目錄中;執行 genstrings 命令 genstrings *.swift (如果使用的語言是Objective-C,則將 .swift 改為 .m 即可)。需要注意的是genstrings命令不會遍曆子檔案夾,換句話說,如果swift檔案放在多重檔案夾當中,那這些檔案將不會被訪問到,所以最好的方法是使用find命令先將需要的檔案找到,然後再使用genstrings命令來組建檔案。如:
find ./ -name '*.swift' -print0 | xargs -0 genstrings -o ./zh-Hans.lproj/
說明:-print0 和 xargs的作用可以參考find命令的說明, -o 後面參數指定目標路徑
b. 選擇Xcode上左邊的Navigator選擇項目,然後在功能表列上選擇 Editor -> Export For Localization…,然後指定檔案目錄(暫時指定到案頭吧)。
從案頭路徑可以看到產生的檔案夾,開啟檔案夾,裡面有個尾碼名為xliff的檔案,該檔案使用的是 xml 格式。開啟檔案,我們可以看到所有需要本地化的字串:
...<body> <trans-unit id="cWa-zv-jKP.text"> <source>Setting</source> <target>Setting</target> <note>Class = "UILabel"; text = "Setting"; ObjectID = "cWa-zv-jKP";</note> </trans-unit> </body>...<body> <trans-unit id="CFBundleName"> <source>$(PRODUCT_NAME)</source> </trans-unit> <trans-unit id="CFBundleShortVersionString"> <source>1.0</source> </trans-unit> </body>...<body> <trans-unit id="GOOD"> <source>GOOD</source> <note>輸出GOOD字串</note> </trans-unit> <trans-unit id="Setting"> <source>Setting</source> <note>No comment provided by engineer.</note> </trans-unit> <trans-unit id="Test"> <source>Test</source> <note>測試</note> </trans-unit> </body>
在source標籤下的內容就是要本地化的字串,taget標籤就是本地化後的字串,note標籤即是注釋。我們發現有些source下沒有taget標籤,我們可以自己加上去,並寫上本地化後的字串,其他taget標籤的內容也修改成我們需要的字串。
修改後進行儲存。然後跟上面同樣的步驟,我們選擇import Localization...匯入檔案。
然後會看到剛才修改的內容和之前檔案內容的對比,點擊import即可。
匯入成功後,即可看到我們本地化的檔案,運行程式,一切順利:
這就完成了本地化了。
參考文章:
[http://blog.chinaunix.net/uid-20082146-id-83489.html]