为什么要实现国际化?
为了方便扩展用户量和更多国家的人能够使用app。
1.APP Name的国际化
首先我们在项目里面的project中找到Localizations点击+来添加支持的语言。

默认的是支持英文,我这里举例添加一个简体中文的来演示。

接下来新建一个String File的文件 命名为InfoPlist

然后选择新建的string文件添加语言

添加完之后string文件里面就包含英文和中文的两个文件

然后在对应的文件夹中设置APP的name ,注意要使用CFBundleDisplayName 也就是infoplist文件中appname的key


这一步完成后,再运行app,切换手机设置中的语言就可以展示对应的app name。
2.内容的国际化
同样新建String文件,不过得命名为Localizable


使用键值对来设置不用语言下文字内容,获取文字内容时使用NSLocalizedString方法来获取。

3.xib内容的国际化
如下图在xib文件中也是有Localizations来勾选语言,之后会得到对应的string文件。

xib文件中的控件都有对应id

在文件中我们以label的id.text作为key来设置label应该显示的文字。


不需要其他操作,直接运行项目,xib中的label就会显示文件中所设置的文字内容。
测试发现xib添加的lable如果内容为空时,配置的多语言没有显示,需要给lable先设置一个默认的文本才会正常显示。
网友评论