博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS 本地化进阶教程
阅读量:5861 次
发布时间:2019-06-19

本文共 1645 字,大约阅读时间需要 5 分钟。

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文件本地化,是不是很简单?

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

转载地址:http://ifgjx.baihongyu.com/

你可能感兴趣的文章
我的友情链接
查看>>
JavaWeb04-HTML篇笔记(五)
查看>>
读《做单--成交的秘密》有感
查看>>
hash 内部实现
查看>>
软件测试流程
查看>>
JS(JavaScript)的进一步了解1(更新中···)
查看>>
LaTeX插入jpg图片: 使用graphicx
查看>>
TP为什么这个if判断什么都不显示?
查看>>
Java NIO Related
查看>>
ACM 算法模板
查看>>
jQuery方法大全
查看>>
PAT Acute Stroke (30)
查看>>
CSS/块级元素与内联元素的深入理解
查看>>
什么是SSH
查看>>
随笔小绪
查看>>
用代理服务器做接口整合大大减少http请求
查看>>
Flutter官方文档动画示例小结
查看>>
记一次kubernetes集群异常:kubelet连接apiserver超时
查看>>
站内信设计总结
查看>>
SpringCloud(二):Ribbon-几种配置方式
查看>>