iOS 本地化進階教程
在上一篇入門教程中,我們已經(jīng)介紹了最基本的本地化方法了,接下來我們要來講講兩種特殊的本地化情況。
xib和storyboard本地化
xib和storyboard作為兩種不同類型的UI工具,讓我們得以擺脫代碼布局之苦,他們的本地化,既可以使用上一篇文章中的方法通過代碼修改,也可以直接對xib和storyboard文件進行本地化操作,操作類似strings文件的Localize操作,見下圖

屏幕快照 2015-12-23 13.57.37.png
選中文件后,點擊右邊欄Localize按鈕,勾選對應語言。

屏幕快照 2015-12-23 13.57.56.png
這樣我們發(fā)現(xiàn)在Storyboard文件中,包含了Chinese版本的Strings文件,內容如下
/* Class = "UILabel"; text = "用戶名"; ObjectID = "8f2-qK-7KS"; */
"8f2-qK-7KS.text" = "用戶名";
/* Class = "UIButton"; normalTitle = "登錄或注冊"; ObjectID = "ENI-bN-wSs"; */
"ENI-bN-wSs.normalTitle" = "登錄或注冊";
/* Class = "UIButton"; normalTitle = "上一步"; ObjectID = "IGn-o3-iJc"; */
"IGn-o3-iJc.normalTitle" = "上一步";
/* Class = "UILabel"; text = "用戶名"; ObjectID = "YHI-In-kPq"; */
"YHI-In-kPq.text" = "用戶名";
/* Class = "UIButton"; normalTitle = "登錄或注冊"; ObjectID = "hzS-mR-s9E"; */
"hzS-mR-s9E.normalTitle" = "登錄或注冊";
/* Class = "UILabel"; text = "標題"; ObjectID = "rjb-sh-ADV"; */
"rjb-sh-ADV.text" = "標題";
/* Class = "UILabel"; text = "標題"; ObjectID = "wxc-43-QK7"; */
"wxc-43-QK7.text" = "標題";
/* Class = "UIButton"; normalTitle = "用戶使用協(xié)議"; ObjectID = "xdy-郭佳-fv1"; */
"xdy-郭佳-fv1.normalTitle" = "用戶使用協(xié)議";
英文作為項目設置的基礎語言,直接使用storyboard內容,中文的本地化,則由這個strings文件控制,是不是很簡單。
info.plist的本地化
第二種特殊的本地化需求是對info.plist文件進行本地化。具體的最常見的使用場景有:
- 應用名稱本地化
- 定位請求提示語本地化
我們知道系統(tǒng)默認的本地化文件名,叫做Localizable.strings,info.plist文件也有自己對應的本地化文件,叫做InfoPlist.strings
這個文件需要開發(fā)者自己添加,我們添加好以后,在info.plist中加入`CFBundleDisplayName`鍵值,這個鍵值決定應用顯示的名字。
接下來在InfoPlist.strings文件中寫入本地化索引,注意CFBundleDisplayName前后沒有引號,這個文件是專門用來本地化info.plist文件的。
CFBundleDisplayName = "你的軟件名稱";
NSLocationAlwaysUsageDescription = "我需要使用手機的定位服務,請授權";
NSLocationAlwaysUsageDescription鍵值則是位置服務授權時候的提示語。如此一來就實現(xiàn)了info.plist文件本地化,是不是很簡單?
我們的本地化教學就告一段落了,有其他問題請留言哦。