1

iOS 本地化进阶教程

上一篇入门教程中,我们已经介绍了最基本的本地化方法了,接下来我们要来讲讲两种特殊的本地化情况。

xib和storyboard本地化

xibstoryboard作为两种不同类型的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-gJ-fv1"; */
"xdy-gJ-fv1.normalTitle" = "用户使用协议";

英文作为项目设置的基础语言,直接使用storyboard内容,中文的本地化,则由这个strings文件控制,是不是很简单。

info.plist的本地化

第二种特殊的本地化需求是对info.plist文件进行本地化。具体的最常见的使用场景有:

  1. 应用名称本地化

  2. 定位请求提示语本地化

我们知道系统默认的本地化文件名,叫做Localizable.strings,info.plist文件也有自己对应的本地化文件,叫做InfoPlist.strings

这个文件需要开发者自己添加,我们添加好以后,在info.plist中加入`CFBundleDisplayName`键值,这个键值决定应用显示的名字。

接下来在InfoPlist.strings文件中写入本地化索引,注意CFBundleDisplayName前后没有引号,这个文件是专门用来本地化info.plist文件的。

CFBundleDisplayName = "你的软件名称";
NSLocationAlwaysUsageDescription = "我需要使用手机的定位服务,请授权";

NSLocationAlwaysUsageDescription键值则是位置服务授权时候的提示语。如此一来就实现了info.plist文件本地化,是不是很简单?

我们的本地化教学就告一段落了,有其他问题请留言哦。


秋刀生鱼片
2.1k 声望82 粉丝

独立游戏开发者