一、项目内的语言国际化
1.1、按下图顺序添加你所需要的语言,我这里添加了两种:中文、英语,因为英文是自带的,所以只需要选择中文就可以了
![](https://img.haomeiwen.com/i12779815/7a63e8c021803dfd.png)
![](https://img.haomeiwen.com/i12779815/56bb72a7a438f8c5.png)
2.2、创建strings file文件,名字分两种,一种是使用Localizable. strings命名,另外一种是xxx. strings,两种命名用法不一样,先介绍Localizable. strings命名
![](https://img.haomeiwen.com/i12779815/a0dffdbe3819383c.png)
2.3、创建Localizable.strings之后如下图所示,选择Localize...
![](https://img.haomeiwen.com/i12779815/acb0eae3be82621e.png)
随便选择一个你要添加的语言,点击Localize按钮确定
![](https://img.haomeiwen.com/i12779815/bca7c6b84e7c7ad6.png)
然后在右侧将你所需要的语言全部加上
![](https://img.haomeiwen.com/i12779815/c9ee5cf9907165ed.png)
2.4、此时点开Localize.strings文件左侧箭头展开,在每种语言的文件里面写上对应的字段
![](https://img.haomeiwen.com/i12779815/2870a0b04d01d167.png)
![](https://img.haomeiwen.com/i12779815/4c7e4db02d6302ce.png)
2.5、现在就可以直接用NSLocalizedString(@"userName", nil)进行使用了
NSLog(@"%@",NSLocalizedString(@"userName", nil));
这时在手机里面切换语言就会打印出不同的结果“张三” 或者“zhangsan”了
2.6、使用xxx. strings命名,前面的步骤和Localizable. strings命名的一样,只是在使用的时候又区别,如现在使用user.strings命名,则在使用的时候要这样使用:NSLocalizedStringFromTable(@"userName",@"user", nil)。
NSLog(@"%@",NSLocalizedStringFromTable(@"userName",@"user", nil));
这时在手机里面切换语言就会打印出不同的结果“张三” 或者“zhangsan”了
二、APP名称国际化国际化
1、同创建Localizable.strings文件一样,创建一个InfoPlist.strings文件。
重要的事情说三遍
2、选择语言也和Localizable.strings一样。
3、配合不同语言的APP名称。一种是使用CFBundleName,一种是使用CFBundleDisplayName。
4、使用CFBundleName。先配置InfoPlist.strings,如下图,
![](https://img.haomeiwen.com/i12779815/2995593dd04a66ab.png)
![](https://img.haomeiwen.com/i12779815/71f5bee3218e0d1f.png)
然后在Info里面配置Bundle name.
![](https://img.haomeiwen.com/i12779815/bb16405931be26f4.png)
5、使用CFBundleDisplayName。先配置InfoPlist.strings,如下图,
![](https://img.haomeiwen.com/i12779815/1db61e128125397e.png)
![](https://img.haomeiwen.com/i12779815/0ae6fc3a367540bf.png)
然后将Info里面Bundle name还原到最原始状态
![](https://img.haomeiwen.com/i12779815/a527a7bbef89d7d8.png)
6、效果如下
![](https://img.haomeiwen.com/i12779815/a6a74a877216148c.png)
7、demo传送门
网友评论