iOS开发——国际化支持Localizable.strings
这篇写的不多,但是绝对诚意满满。不会像别人一样,要不不详细,要不罗里吧嗦一堆。
1、创建Localizable.strings文件
Command+N—>iOS—>Resource—>Strings File,命名为Localizable,这样就生成了Localizable.strings文件。
2、添加语言
点击最上面的项目名准备进行设置,在最左边的窗格中选择PROJECT(默认的是TARGETS),然后在Info标签下你会看到一个Localizations分区。点击点击“+”,然后选择你想要的语言。
添加的时候,你会发现Localizable.strings,Main.storyboard和你建的XIB都是默认勾选的,这些你勾不勾都行,你可以在这里直接勾选,也可以觉得用不着在故事板或xib上设置,直接去掉勾选也行。这是你会发现Localizable.strings这个文件和你勾选过的文件,不再是单个文件了,你选的每一个语言,都有一个相应的文件。
万一你在添加语言的时候,没有勾选某个xib,现在你想要直接对这个xib进行国际化设置,怎么办?不急,你选中那个xib,在Xcode的右边的框里,选择第一个文件图标的标签,你会看到Locallzation这个分区,剩下的懒得说了,自己玩吧!
3、对每种语言进行设置
在Localizable.strings中,对每种语言分别设置,比如在Localizable.strings(Chinese(Simplified))这个文件中,写一行代码:"Start" = "开始";
在Localizable.strings(English)这个文件中写上:"Start" = "Start";在Localizable.strings(French)这个文件中写上:"Start" = "Commencer";
在需要用到的地方,label.text = NSLocalizedString(@"start", nil);那么你的应用就国际化了,当你手机系统设置的语言是简体中文时,这个label显示开始;当你手机系统设置的语言是英文时,这个label显示Start,当你手机系统设置的语言是法语时,这个label就会变成Commencer。
4、对Storyboard或者XIB中的控件直接进行国际化设置
基本上有上面三步就够用了,但是你想在xib上直接国际化,不想用Localizable.strings这个文件,怎么办?
小意思!
第一步,先保证你的xib可以点开,这个上面介绍了,不多说。
第二步,先在xib上一个label,内容“开始”,然后你点开xib里面的几个文件,空的!!!如果是你先label,然后再添加语言,勾选xib,那么它里面是有东西的,但是如果是你后来添加的话,它不会在里面语言的文件里自动添加,这里需要折腾一下,这点苹果比较坑。网上别的帖子怎么做的?要不不说这一点,要不就是在终端捣鼓一下。
我不喜欢这种方法,直接在Xcode小葱的中折腾,在Xcode右边上面提过的Locallzation分区中,每个语言这都有,每个语言后面都有上下箭头,点开,当前选择的是Localizable Strings,改成另一项Interface Builder Cocoa Touch XIB,然后再改回来Localizable Strings,这时候你再点开xib不同语言的文件都会出现相同的两行代码:
/* Class = "UILabel"; text = "开始"; ObjectID = "8OX-N2-Acl"; */
"8OX-N2-Acl.text" = "开始";
第二行等号后面的那个开始,你就可以用对应的语言来替换了。
注意:当我们在国际化的时候,写key,写着写着就忘了加 ";" ,如果忘了,这时会报错,“read failed: the data couldn't be read because it isn't in the correct format.”,这时候认真查看一下自己的Localization文件就可以了。
iOS开发——国际化支持Localizable.strings的更多相关文章
- iOS开发——Localizable.strings
这篇写的不多,但是绝对诚意满满.不会像别人一样,要不不详细,要不罗里吧嗦一堆. 1.创建Localizable.strings文件 Command+N—>iOS—>Resource—> ...
- IOS软件国际化(本地化Localizable)
IOS软件国际化(本地化Localizable) iPhone是支持语言最多的手机,它支持各国语言及中国少数名族如蒙古等语言,这也是好多少数名族都用苹果的原因.在这一点上我们自主品牌还是要多学习学习. ...
- iOS开发之国际化
iOS 国际化.根据系统不同的语言自动切换. 首先.选择项目 Add new file -->iOS -->Resource -->Strings File . 命名为Locali ...
- iOS开发——高级技术&本地化与国际化详解
本地化与国际化详解 效果如下: 英语: 中文: 具体实现如下: ...
- IOS APP 国际化 程序内切换语言实现 不重新启动系统(支持项目中stroyboard 、xib 混用。完美解决方案)
上篇 IOS APP 国际化(实现不跟随系统语言,不用重启应用,代码切换stroyboard ,xib ,图片,其他资源 介绍了纯代码刷新 实现程序内切换语言. 但效率底下,也存在一些问题.暂放弃. ...
- iOS国际化支持
写给自己看: 1.先创建一个国际化文件,用于描述在不同的区域环境,显示不同的value.文件名必须是Localizable.strings,文件的内容稍后再写.
- iOS中使用Localizable.strings适配App在不同语言下文本的显示
iOS开发中,若是使用xib或storyboard搭建界面视图,视图中固定显示的文本内容可以用localized添加不同语言适配.但是在实际中会有动态加载的文本,这些文字的适配就需要NSLocaliz ...
- [iOS]怎样在iOS开发中切换显示语言实现国际化
1.在Project设置,加入中英两种语言: 2.新建Localizable.strings文件,作为多语言相应的词典,存储多种语言,点击右側Localization,勾选中英: watermark/ ...
- iOS开发-- 创建podspec文件,为自己的项目添加pod支持
开篇扯淡 作为一个iOS开发者,一定用过CocoaPods吧,没用过?点这儿去面壁吧 Cocoapods作为iOS开发的包管理器,给我们的开发带来了极大的便利,而且越来越多的第三方类库支持Pod,可以 ...
随机推荐
- BZOJ 2096 单调队列
思路: 偷懒用的STL //By SiriusRen #include <deque> #include <cstdio> using namespace std; struc ...
- 如何显示bootstrap fileinput缩略图上面的删除按钮
bootstrap上传文件控件初始化js: //bootstrap上传文件控件 $(".fileupload").fileinput({ language: "zh&qu ...
- Windbg调试托管代码
Windbg调试.net托管代码需要借助于SOS.dll,.Net 4.0的32位sos.dll的路径在C:\Windows\Microsoft.NET\Framework\v4.0.30319,64 ...
- There is no 'root'@'%' registered解决
把别人机器上的MYSQL中的一个数据库导出来,生成了一个.sql的文件 在我的机器上导入这个.sql文件之后,在数据库连接时出现了如下错误: “There is no 'root'@'%' ...
- System.IO.IsolatedStorage 使用 IsolatedStorageFileStream 存储信息
在C#中还有一种叫做IsolatedStorage的存储机制,他存储信息的方式类似于我们的cookie, IsolatedStorage存储独立于每一个application,换句话说我们加载多个应用 ...
- Android群英传-拼图游戏puzzle-6点吐槽
一.缘由 经常写文章,混了一些C币.最近在深入学习Android应用开发,就从商城里买了一本<Android群英传>.这本书的内容,不是纯粹的入门那种,分几个章节,重点讲解Activit ...
- Google C++ Style Guide的哲学
Google C++ Style Guide并不是一个百科全书,也不是一个C++使用指南,但它描述适用于Google及其开源项目的编码指南,并不追求全面和绝对正确,也有许多人置疑它的一些规则.但作为一 ...
- 【转】 C#学习笔记14——Trace、Debug和TraceSource的使用以及日志设计
[转] C#学习笔记14——Trace.Debug和TraceSource的使用以及日志设计 Trace.Debug和TraceSource的使用以及日志设计 .NET Framework 命名空 ...
- 一个leetcode解题报告类目,代码很简洁
http://bookshadow.com/leetcode/ 里面的代码很简洁.可以看.
- 教你怎样做个有“钱”途的測试project师
百度百科说測试project师这一职业的待遇,薪酬上升空间很大.但測试project师也有自己的烦恼,比方在程序出错后,将问题反馈给程序猿,然后程序猿给的答复是:"oh,howisthatp ...