iOS 多语言开发(国际化)

一、接入多语言文件 xxx.strings

该步骤是初始化多语言文件,和配置我们想要的语言类型。

1.command+n打开创建文件界面,点击Resource中的Strings File 创建多语言文件
iOS 多语言开发(国际化)_第1张图片
创建多语言文件.png
2.点击创建的.strings文件,在文件的配置界面,初始化配置Localiztion
iOS 多语言开发(国际化)_第2张图片
配置localize.png

点击Localization出现下图,选择一种语言进行初始化,这里选择的是English


iOS 多语言开发(国际化)_第3张图片
初始化多语言文件.png
3.点开Demo->PROJECT->Localization 添加需要的其他语言的文件
iOS 多语言开发(国际化)_第4张图片
配置多语言.png

添加完成后程序中的.strings 文件多出三个子文件,括号中的字段表示对应的语言

iOS 多语言开发(国际化)_第5张图片
多出三个多语言文件.png

二、使用多语言开发

根据上面的步骤,已经把多语言文件配置好了,我的Demo里配置了三种语言,分别是繁中,简中和英语,下面演示如何使用

1. xxx.strings文件的查看方式有两种,源码查看和plist查看

两种方式都有好坏吧,由于对于同一字符串LocalizationKey要配置多种语言的版本,所以用Source Code的方式直接可以复制黏贴,比较方便;而plist的方式观看比较直观(字典形式),且下面要说的使用方法也是类似字典的key-value取值方式,容易理解

iOS 多语言开发(国际化)_第6张图片
查看方式.png
iOS 多语言开发(国际化)_第7张图片
查看方式1:源码.png
iOS 多语言开发(国际化)_第8张图片
查看方式2:plist.png
2.具体使用

使用的时候,需要用到一个系统宏,和该宏类似的宏还有如下图所以的4种


iOS 多语言开发(国际化)_第9张图片
宏定义.png

#define NSLocalizedStringFromTable(key, tbl, comment) [[NSBundle mainBundle] localizedStringForKey:(key) value:@"" table:(tel)]
这个宏实际是调用了bundle的localizedStringForKey:::方法,并根据tbl名称和key返回NSString类型,tbl就是我们所创建的.strings文件的文件名;key的话,这时候用plist的方式去理解就更加直观了,就是plist文件的中key;Comment是对该key的一个描述,填nil即可。

iOS 多语言开发(国际化)_第10张图片
创建label.png
3.表现

当配置好并正确使用系统宏调用返回的NSString后,在手机切换系统语言后,会发现,同一个Demo,在不同的语言环境下,显示不同,并恰好是我们在.strings文件中预设的字符串,达到多语言开发的效果

iOS 多语言开发(国际化)_第11张图片
英文.png
iOS 多语言开发(国际化)_第12张图片
IMG_1041.PNG
iOS 多语言开发(国际化)_第13张图片
繁中.png
iOS 多语言开发(国际化)_第14张图片
IMG_1042.PNG
iOS 多语言开发(国际化)_第15张图片
简中.png
iOS 多语言开发(国际化)_第16张图片
IMG_1043.PNG

你可能感兴趣的:(iOS 多语言开发(国际化))