简介
多语言的文章在网上并不少,下面要讲的是xib、纯代码实现国际化的一些步骤和注意事项。
一、纯代码中的国际化
1、创建.strings文件
2、选中Strings File

3、点击工程中的info---Localization---+

4、点击加号后选中想要添加的语言,其中Chinese(Simplified)是中文简体

5、左侧的String文件会随着选中某种语言增加相应的语言文件

6、选中左侧的文件,打开右边的编辑栏,点击Localization


7、勾上你需要的语言,base是默认英文和中文




10、运动代码,发现导航栏是显示了key:home而不是value:静林是真的瓜子。what?

小坑注意:
刚才创建String文件的时候,我们的命名是File,这里需要注意,最好用Localizable命名文件,如果你喜欢不走寻常路可以采纳下面第二种解决方法。
解决:

方法2)、将代码改为下图,File为文件名称,其他地方不变


温馨提示:(保持文件独立性与多人开发)
12、同理,在English文件中写入英文第二种解决方法用于多人开发的时候是非常有用的。第一种解决方法是系统默认的命名方式,也就是系统将根据语言加载相应的文件得到其对应的字符串文件,这个字符串可以通过系统将NSLocalizedString中的宏生成名为“Localizable.strings”的文件,第二种方法是用NSLocalizedStringFromTable这个宏来读取本地化字符串,传入文件名让系统识别,防止多人开发产生的文件冲突。


二、xib中的国际化
xib的国际化实现相对纯代码来说就麻烦一点了,它需要把一个一个xib生成Strings文件,并且去到Strings文件修改文字。
1、跟纯代码一样,要在工程的info---Localization---+添加需要的语言,

3、勾选需要的语言


5、点击English文件,写入,图中只修改了teamInfo

6、在English的环境下,运行代码,其他文字不变,修改的teamInfo如图变成了所需要的

写到这里就结束了,如果之前已经写好的代码没有实现国际化呢,那现在就是苦力而非技术活了。写的不周全的地方,谢谢指出~
网友评论