1分钟教你实现iOS国际化
国际化的介绍
说到国际化,大家必定联想到本地化,个人的理解,两者是相辅相成的,本地化是你的APP转化为多种语言的过程,而在本地化之前你的APP必须支持国际化。那么国际化便是使你的APP具有适应不同地域的能力。那么为什么要设置国际化呢?顾名思义根据不同的地域选择不同的语言,使得不同语言不同国家的用户看懂我们的APP所想要传递的信息。
下面进入正题,完成国际化的设置
设置产品所需要的国际化的语言
仅需配置一次,若后来想要加另一种直接点击加号即可
※ project--->info---> Localizations,点击“+”号,添加产品所需的语言
屏幕快照 2016-11-30 下午5.29.44.png※ 比如选择繁体中文,然后弹出这个框,直接点击finish即可
屏幕快照 2016-11-30 下午5.37.02.png※ 同理,我添加了简体中文,繁体中文,法语,作为例子,最终呈现这种效果:
屏幕快照 2016-11-30 下午5.41.45.png(一)应用名称的国际化
应用名称国际化就是指:在不同的语言设置下,显示相应的语言,比如系统中的设置,在简体中文下是“设置”,如果设置成英文语言,那么显示为“setting”。
※ 选中info.plist--->快捷键(control+N)--->弹出框中选择String File--->点击next--->Save As名称写成InfoPlist(注:名字一定不能错,否则无效)--->create
※ 选中上一步创建好的InfoPlist.strings文件(在info.plist文件下面),点击Xcode右上角按钮 展示右栏,点击Localization按钮,如图:
屏幕快照 2016-11-30 下午5.57.22.png
※ 在上步的弹出框里 选择自己要本地化的语言,点击Localize.如图:
屏幕快照 2016-11-30 下午6.00.18.png
※ 同样选中InfoPlist.strings文件,展示右栏,选中自己所要本地化的语言,打上对勾
屏幕快照 2016-11-30 下午6.03.34.png※ 这时你会发现InfoPlist.strings变成了一个目录,点开三角号,如图:
屏幕快照 2016-11-30 下午6.06.01.png※ 我们以英文为例,点开English的strings,我们需要按照CFBundleDisplayName = “ ”这种方式写入这个语言所要展示字段,那么比如在英文语言里,名字为“hello,world” 如图:
屏幕快照 2016-11-30 下午6.49.29.png※ 同理,在简体中文,繁体中文,法语中的设置
屏幕快照 2016-11-30 下午6.50.02.png屏幕快照 2016-11-30 下午6.50.14.png
屏幕快照 2016-11-30 下午6.50.22.png
※ 到此,产品名称的国际化算是完成了,大家可以通过改变设备的语言,显示效果
Simulator Screen Shot 2016年11月30日 下午6.42.44.png Simulator Screen Shot 2016年11月30日 下午6.43.25.png Simulator Screen Shot 2016年11月30日 下午6.44.12.png Simulator Screen Shot 2016年11月30日 下午6.45.08.png产品内容 字符串的国际化
顾名思义,如果APP里有个按钮title为完后,那么在简体中文里应该是“完成”,在英文设置则是“finish”
※ 首先和APP名称准备是一样的(注添加语言不用),创建strings文件,不同的是名字必须是Localizable,如图:
屏幕快照 2016-11-30 下午6.21.41.png※ 同样要选中新创建好的Localizable.string文件,点击Localize,选择要国际化的语言,然后打上对勾,结果如图:
屏幕快照 2016-11-30 下午6.25.01.png※ 打开Localizable目录,设置不同语言的字段表示,在代码中运用,这里我以button的title为例,如图
屏幕快照 2016-11-30 下午6.30.02.png 屏幕快照 2016-11-30 下午6.30.29.png 屏幕快照 2016-11-30 下午6.30.51.png 屏幕快照 2016-11-30 下午6.31.22.png※ 代码中表示:
[button setTitle:NSLocalizedString(@"buttonTitle", nil) forState:UIControlStateNormal];
※ 运行结果如下:
Simulator Screen Shot 2016年11月30日 下午6.42.29.png Simulator Screen Shot 2016年11月30日 下午6.43.31.png Simulator Screen Shot 2016年11月30日 下午6.44.16.png Simulator Screen Shot 2016年11月30日 下午6.45.15.png图片的国际化
有两种方式:
1.与国际化字符串的方法一样,通过NSLocalizedString来实现
2.与第一种方式不同,将图片加到工程里--->选中图片--->点击右侧的 Localize,选择语言。--->同样图片变成目录--->同样方式设置每个语言下的字段,此步骤与国际化字符串相同,同上。
应用内部修改语言链接推荐
http://blog.csdn.net/shaobo8910/article/details/48396325