由于最近项目要做多语言适配,所以本人经过多方面查阅,在完成任务的情况下,总结了一下国际化的基本步骤,并记录于此,方便以后查阅(实际是怕忘记了).如果有写的不好的地方,欢迎批评指导.
APP名称国际化
1.首先我们要先创建一个工程,我们给他命名 “国际化” ,然后添加语言.
2.创建一个 .strings 拓展名的文件,打开 File > New > File(command + N),选择Resource中Strings Fils,如下图.点击 “next” ,命名文件为 InfoPlist.strings, 然后点击 “create”.
3.创建完成,可以看到工程目录结构如下,选中InfoPlist.strings, 在右边属性栏Localization中选择语言,如图.
4.选择完语言后打开对应的语言文件,比如
Simplified(简体中文)
“CFBundleDisplayName” = “你好 世界”;
English
“CFBundleDisplayName” = “hello world”;
到此,APP名称国际化完毕,接下来只需要修改对应的系统语言,便可看到对应的效果.
内容国际化
1.新建一个Localizable.strings 文件 (因为NSLocalizedString方法默认是前往本地化项目内部的应用程序包中查找名为"Localizable.strings" 字符串文件)
注:如果不是采用系统的默认名字,则需要调用 NSLocalizedStringFromTable(<#key#>, <#tbl#>, <#comment#>) 这个宏定义.这个宏定义的作用是读取 table 中定义的 key 所对应的 value.
第一个参数:自定义 .strings 文件中对应的 key
第二个参数:自定义 .strings 文件的文件名,不需要后缀.
第三个参数:填 nil 就可以了
2.选择语言同上
3.在Localization.strings 中,按照”key” = “value”的格式;然后使用时用NSLocalizedString(@”key”, nil)读取内容;
Simplified(简体中文)
“哈哈哈”=”哈哈哈!”;
English
“哈哈哈”=”hahaha”;
xib国际化
1.创建一个view并带上xib,点击右侧属性栏 Localization 中 Localize…,在弹窗选择”Base”,然后点击Localize,如图:
2.Localize 完毕后,在右侧属性栏中选择语言,如图:
3.点击xib的箭头展开xib,会显示出语言文件,选择语言文件,会看到文件里也是”key” = “value” 的形式存在的,不同的是需要 “Object ID”,如果xib上的控件是在生成语言文件之前创建好的,系统会自动生成 “key” = “value” 的键值对,我们只需要将”value”修改成对应的语言便可,如图:
如果xib上的控件是在生成语言文件之后创建的,则需要自己写”key” = “value”,而 “Object ID” 则是选择对应的控件,在右侧属性栏查看,如图:
注:其实xib也可以不用生成对应的语言文件,只需要在代码中书写控件对应的title或者text,然后在Localization.strings 中,按照”key” = “value”的格式;然后使用时用NSLocalizedString(@”key”, nil)读取内容.