iOS 国际化(多语言)

一、工程配置(GitHub演示Demo)

在 PROJECT -> Localizations 点击 "+" 添加项目支持的语言

iOS 国际化(多语言)_第1张图片
工程配置
二、Info.plist

1.创建 InfoPlist.strings 文件,此文件对应 Info.plist 文件配置。在左下角 Localizatio 区域勾选 Base、English或Chinsese(simplified)才会出现对应的 InfoPlist.strings,在对应的文件中设置相应的 key-value。(这里Base文件可以理解为原始文件)

iOS 国际化(多语言)_第2张图片
创建 InfoPlist.strings 文件

2.配置应用名称,应用名称对应的key是CFBundleDisplayName,个个文件中的值配置如下

iOS 国际化(多语言)_第3张图片
InfoPlist.strings(Base)这里copy了Enhlish里的配置,不配置无影响
iOS 国际化(多语言)_第4张图片
InfoPlist.strings(English)
iOS 国际化(多语言)_第5张图片
InfoPlist.strings(Chinsese(simplified))
三、设置 Label 的 text 属性

1.创建 Internationalization.strings 文件,在左下角 Localization 区域勾选对应的语言版本

iOS 国际化(多语言)_第6张图片
创建 Internationalization.strings 文件

2.配置 key-value ,这里 key 命名为 "label.text" ,可配置任意名称

iOS 国际化(多语言)_第7张图片
Base
iOS 国际化(多语言)_第8张图片
English
iOS 国际化(多语言)_第9张图片
Chinsese(simplified)

3.设置 Label.text 的值

设置 Label.text 的值

这里使用宏 NSLocalizedStringFromTable ,它会读取指定文件名的内容,其中第一个参数是key,第二个参数是文件名,第三个参数是注释信息传nil即可。这里也有函数NSLocalizedString,它默认会读取 Localizable.strings 的内容,无需指定文件名

四、配置 storyboard

1.点击 storyboard 文件,在左下角 Localization 区域勾选支持的语言版本

iOS 国际化(多语言)_第10张图片
storyboard

2.设置不同语言下的值

iOS 国际化(多语言)_第11张图片
Base
iOS 国际化(多语言)_第12张图片
English
iOS 国际化(多语言)_第13张图片
Chinsese(simplified)

当你发现,你改变了你的storyboard上面的控件之后,strings国际化文件没有变化,这确实是一个问题,目前有个解决办
法是这样的。把你的新界面与现有的 MainStoryboard.strings 合并首先,启动“终端”应用程序。然后cd到项目文件夹
的 Base.lproj 目录。例如:cd /Users/UserName/Projects/HelloWorld/HelloWorld/Base.lproj 在提示
符后输入以下命令:ibtool MainStoryboard.storyboard --generate-strings-file New.strings

五、总结

其实配置多语言很简单......

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