定义:
国际化其实都大同小异,其核心思想就是为每种语言单独定义一份资源。
国际化方式:
1、使用系统固定名称国际化(Localizable.strings)
1)添加支持的语言
2)APP名称国际化
创建InfoPlist.strings文件(注意:名字固定),选中InfoPlist.strings文件,在右边File inspector下的Localization中添加语言。添加完成后InfoPlist.strings文件会有个下拉三角形,打开后可以看到对应的语言.strings,在对应的文件中输入CFBundleDisplayName = "English APP";(key是固定的CFBundleDisplayName)。
3)字符串国际化
创建Localizable.strings文件(名称固定),添加语言支持(和InfoPlist.strings一样),注意各语言文件中的key一定要一致("key1" = "English style value";)。
使用方法:_showLabel.text = NSLocalizedString(@"key1", nil);,当找不到对应的语言strings或value时会直接返回key的值。
4)图片国际化
方案一:将图片的名称国际化(字符串国际化)。
方案二:首先添加一张图片资源,选中图片,在图片的File inspector中添加多语言支持。然后进入图片目录下,修改.lproj目录下的图片。图片的用法和普通用法一样,即可在xib中使用,也可代码调用。
5)应用内切换语言
应用启动时,首先会读取NSUserDefaults中的key为AppleLanguages的内容,该key返回一个String数组,存储着APP支持的语言列表,数组的第一项为APP当前默认的语言。
在安装后第一次打开APP时,会自动初始化该key为当前系统的语言编码,如简体中文就是zh-Hans。