根据当前设备语言自动切换显示。
几个涉及到多语言本地化设置的:
1.应用名称
2.文字
3.图片、素材
4.StoryBoard(Xib)
iOS国际化原理分析
核心思想就是为每种语言单独定义一份资源。iOS 就是通过xxx.lproj目录来定义每个语言的资源,这里的资源可以是图片,文本,Storyboard,Xib等。
一.配置多语言环境
选中项目 --> PROJECT(默认是选中TARGETS,切换下选择项目) --> Info --> Localizations --> 设置多语言环境
1.点击 + 添加语言
![](https://img.haomeiwen.com/i2080090/86e74bf4174f5959.png)
2.选择 Use Base Internationalzation
![](https://img.haomeiwen.com/i2080090/b9c67ae0b45a471f.png)
二.应用名称国际化
1.在 info 里手动添加一行Bundle display name字段,bundle display name “XXXX”
![](https://img.haomeiwen.com/i2080090/e592945d3aff11ab.png)
2.编辑Info.plist
![](https://img.haomeiwen.com/i2080090/69ba699bbbc4abb5.png)
打开Info.plist,添加一个新的属性Application has localized display name, 设置其类型为boolean,并将其value设置为YES
3.创建InfoPlist.string,并进行Localization配置
command + N,添加InfoPlist.string,注意名称一定要是InfoPlist,string,添加后放入Supporting Files 下
![](https://img.haomeiwen.com/i2080090/241e1ab15d3b37ed.png)
![](https://img.haomeiwen.com/i2080090/04d1e5228199b506.png)
Localization配置:
工作目录结构文件下单击InfoPlist.strings,查看右边的属性,在Localization栏添加语言
![](https://img.haomeiwen.com/i2080090/caa1d5a05b083602.png)
![](https://img.haomeiwen.com/i2080090/ea76761f4e7d20e8.png)
选择语言
![](https://img.haomeiwen.com/i2080090/b083dd1f2db09ae7.png)
Base与前面提过到的开启Use Base Internationalization是有关联的,只有开启了全局Use Base Internationalization这里才会显示。那为什么这里没有勾选Base,是因为Base做为一个基础模板,作用于Strings文件是没有太大意义的,去掉Base意味着在Base.lproj中少了一个strings文件,APP大小也所有下降,这点对于图片的Base也是这样.
4.添加完成后打开对应语言文件
![](https://img.haomeiwen.com/i2080090/e2dbdac340d3e40a.png)
![](https://img.haomeiwen.com/i2080090/3e4a9ce227832689.png)
三.文字国际化
1.创建Localizable.strings文件及配置,通创建配置Infoplist.string相同
2.在对应语言的Localizable.strings中添加key=value;字串(各个语言文件中key要相同)
![](https://img.haomeiwen.com/i2080090/6a25f5265c98606b.png)
![](https://img.haomeiwen.com/i2080090/07960e989acc3269.png)
3.在代码中使用NSLocalizedString(key, comment)来读取本地化字符串,第一个参数是key的名字,第二个参数是对这个“键值对”的注释,通常为nil
NSLocalizedString(x, nil);
注意:
如果你的strings文件名字不是Localizable而是自定义的话,如other.strings,那么你就得使用NSLocalizedStringFromTable(key, @"other", nil)来读取本地化字符串,中间那个是@"other"文件名
四.国际化图片
有两种方式:
1.在不同语言的Localizable.strings中指定不同的图片名称,通过NSLocalizedString()获取不同的图片名称后进行显示不同的图片(文字国际化类似)
2.点中你要本地化的图片,如“商标.png”
然后XCode-> View-> Utilities -> File Inspector,在Localization中点“+”添加chinese ;在图片左边就会出现一个倒三角,点开就会出现(english)和(chinese)的2张图,并且在项目文件夹中会出现en.lproj文件和zh-Hans.lproj文件;en.lproj文件存放的是英文版图片,zh-Hans.lproj存放的是中文版图片,中英文图片名字一样,我们在文件夹中直接替换图片就可以了,最后使用时直接使用正常名字就行了,如:“main.png”
![](https://img.haomeiwen.com/i2080090/fbc3c5770922d4d6.png)
![](https://img.haomeiwen.com/i2080090/1e3579ee7087a9ec.png)
设置语言环境
![](https://img.haomeiwen.com/i2080090/ae93ffc24ee085a8.png)
选择语言
![](https://img.haomeiwen.com/i2080090/d1e1fc87c1502a44.png)
多语言下的图片
![](https://img.haomeiwen.com/i2080090/b5fa5b431169a5b9.png)
网友评论