配置需要国际化的语言
配置需要国际化的语言的准备工作,一个项目中仅需要配置一次,适用范围(App名称、代码中的字符串、图片、还是storyboard和xib)。
选中project->Info->Localizations,然后点击”+”,添加需要国际化/本地化的语言,如下图(默认需要勾选Use Base Internationalization):
选择你需要的语言后弹出选择框,勾选你需要国际化的文件(默认全选)
应用名称国际化
App 随设备语言环境(设备语言设置后)下变更
- 选中Info.plist,按下键盘上的command + N,找到Strings File(iOS->Resource->Strings File),点击 Next
- 文件名字命名为 InfoPlist
- 点击create后,Xcode左侧导航列表就会出现名为InfoPlist.strings的文件,如下图:
- 选中InfoPlist.strings,在Xcode的File inspection(Xcode右侧文件检查器)中点击Localize,如下图:
点击 Localize 后,会弹出一个对话框,展开对话框列表(下拉列表所展示的语言是刚刚上面配置的需要国际化的语言),然后点击对话框的 Localize 按钮,如下图:
然后我们发现Xcode右侧的File inspection变成了下图的样式,勾选其余需要国际化的语言:
此时,Xcode左侧的InfoPlist.stirings左侧多了一个箭头,点击箭头可以展开,如下图所示:
接下来,我们给InfoPlist.strings下的文件分别设置对应语言的App 名称,加入如下代码(这里用InfoPlist.strings(japanese)举例):1
2// App在该环境下显示的名称
CFBundleDisplayName = "swiftデモ";
至此,本地化App名称已经演示完毕。
原理总结:程序启动时,会根据操作系统设置的语言,自动加载InfoPlist.strings文件下对应的语言文件,然后显示应用程序的名字。
代码中字符串的本地化
和应用名称本地化一样,首先需要command + N,选择iOS -> Resource -> Strings File,文件名必须命名为 Localizable
文件创建成功,查看Xcode左侧导航列表,发现多了一个名为Localizable.strings的文件,选中Localizable.strings文件,在Xcode的File inspection中点击Localize,目的是选择我们需要本地化的语言(和应用名称国际化同理),如下图:
此时,Xcode左侧的 Localizable.stirings 左侧多了一个箭头,展开后,如下图所示:
然后我们只需要在Localizable.strings下对应的文件中,分别以Key-Value的形式,为代码中每一个需要本地化的字符串赋值,如下(必须以”;“结束):
1
2"首页" = "Home";
"我的" = "Mine";我们只需要使用Foundation框架自带的NSLocalizedString(key, comment),根据Key获取对应的字符串,然后赋值给代码中的字符串。
1
NSLocalizedString("首页", comment: "首页")
至此,替换所有工程中需要显示的字符串后,就会随系统语言显示相应的文字。