写在前面:语言国际化就是为不同的语言做的适配,就像iPhone手机设置里面的展示效果一样,根据不同的语言会将文字变成相应的语言。具体到每一个APP,又将如何做到国际化呢?文章标题括号中的“本地语言国际化”是我自己添加的,我之所以这样理解,就是因为语言的切换是根据本地保存的文件来进行国际化的,下面开始我们的国际化。Xcode8.1
说明:国际化讲解以我上一篇文章(仿QQ抽屉效果)作为要国际化的项目。上一篇文章链接http://www.jianshu.com/p/31eb003eda2c
1.内容国际化
a.新建String File ,用来保存对应语言下显示的内容
b.命名必须为Localizable。因为苹果并没有提供相应的设置或者API来修改文件名。比如OC与swift混编时,你可以在swift项目中自定义一个桥接文件,文件名自己随便取,然后在设置界面的相应位置修改路径就可以了,而这里的国际化并没有这个设置。(个人是这样理解的)
c.看图操作就好
d.看图操作就好
e.在这里根据需要,添加需要的语言
f.把添加的语言都勾上,
g.string file中保存的是键值对,为什么不同语言的string file文件的key是一样的?。项目中,同一个地方是根据不同的语言来显示不同的内容,不同的语言是由用户来选择的,比如你可以设置你iPhone手机的语言为英文,中文等等,当你调用NSLocalizedString(title,@"")系统方法时会根据本地选择的语言来选择不同的stringfile文件,然后根据键来取对应的值。
h.在项目需要国际化的地方进行修改
// 模拟器设置本地语言的步骤:设置 -> Genneral -> Language & Region -> iPhone Language - > 选择你想要的语言
2.项目名称国际化
步骤与内容国际化一样,下面说一下与内容国际化的区别
string file的文件名为InfoPlist
项目名称的key为:CFBundleDisplayName