字面意思就是,在app 显示不同的语言.
大致思路很简单,就是预先吧需要设置的文字内容分几种语言写个文件. app显示内容的时候调用.
1.新建项目.
和普通方式一样,新建一个就好,
2.infoplist里添加国际化
project -> info -> Localizations 点击 加号 按钮, 选择你要添加的语言. 一直下一步.
3.创建strings文件
在项目里创建几个strings 的文件 (至少两个,一个是infoplist的,另一个是是项目中的, 如果未来直观方便调用,可以创建多个,一个大的模块用一个)
strings创建方式: CMD + N , 在Resource里面勾选 Strings File
然后命名为InfoPlist, 创建完成后, 包含该文件类型的 完整名称是 InfoPlist.strings (这个必须这么起名).
4.设置文件display name
打开文件, 在里面输入内容 :"CFBundleDisplayName" ="Languages"; 这个前面的是键名字, 后面是value.
点击InfoPlist.strings文件,在右边的工具栏, 找到localization.点击咯擦李泽..按钮.然后里面把你要的语言都打钩, 这时候InfoPlist.strings 就可以打开了, 在下面的版本里, 对应的value里, 修改文字就成.
5.创建Localizable.strings文件
这个文件是默认的文件. 项目内容中都可以通过它一个是设置,但我感觉,这里写的太多,将来会眼花, 多分几个,方便
设置方式和之前的是一样的.我就不多说了.
文档
#define NSLocalizedString(key, comment) \
[NSBundle.mainBundle localizedStringForKey:(key) value:@"" table:nil]
#define NSLocalizedStringFromTable(key, tbl, comment) \
[NSBundle.mainBundle localizedStringForKey:(key) value:@"" table:(tbl)]
这是文档里的, 第一个, 是键名 和描述, comment可以nil.
第一个, 是键名 、Localizable的文件名 和描述, tbl就是说你的文件不叫Localizable.strings了,那么就得把它写进去.
使用方式
contentLab.text = NSLocalizedString(@"contentLabString",@"Localizable");//默认的文件
poetryLab.text = NSLocalizedStringFromTable(@"poetryLabString",@"JeffinControllerLocalizable", nil);//自己又创建的文件
好了
上demo链接点这儿.