iOS 本地化进阶教程
2015-12-23 本文已影响1255人
秋刀生鱼片
iOS 本地化进阶教程
在上一篇入门教程中,我们已经介绍了最基本的本地化方法了,接下来我们要来讲讲两种特殊的本地化情况。
xib和storyboard本地化
xib
和storyboard
作为两种不同类型的UI工具,让我们得以摆脱代码布局之苦,他们的本地化,既可以使用上一篇文章中的方法通过代码修改,也可以直接对xib和storyboard文件进行本地化操作,操作类似strings文件的Localize操作,见下图
选中文件后,点击右边栏Localize
按钮,勾选对应语言。
这样我们发现在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 = "用户使用协议"; ObjectID = "xdy-郭佳-fv1"; */
"xdy-郭佳-fv1.normalTitle" = "用户使用协议";
英文作为项目设置的基础语言,直接使用storyboard内容,中文的本地化,则由这个strings文件控制,是不是很简单。
info.plist的本地化
第二种特殊的本地化需求是对info.plist文件进行本地化。具体的最常见的使用场景有:
- 应用名称本地化
- 定位请求提示语本地化
我们知道系统默认的本地化文件名,叫做Localizable.strings
,info.plist文件也有自己对应的本地化文件,叫做InfoPlist.strings
这个文件需要开发者自己添加,我们添加好以后,在info.plist中加入`CFBundleDisplayName`键值,这个键值决定应用显示的名字。
接下来在InfoPlist.strings文件中写入本地化索引,注意CFBundleDisplayName
前后没有引号,这个文件是专门用来本地化info.plist文件的。
CFBundleDisplayName = "你的软件名称";
NSLocationAlwaysUsageDescription = "我需要使用手机的定位服务,请授权";
NSLocationAlwaysUsageDescription
键值则是位置服务授权时候的提示语。如此一来就实现了info.plist文件本地化,是不是很简单?
我们的本地化教学就告一段落了,有其他问题请留言哦。