iOS 国际化

字面意思就是,在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);//自己又创建的文件

iOS 国际化_第1张图片
iOS 国际化_第2张图片
好了

上demo链接点这儿.

你可能感兴趣的:(iOS 国际化)