比如这里,我们添加了联合国六种工作语言(汉语,英语,法语,俄语,阿拉伯语和西班牙语)。
默认文件名为“Localizable”,不要去修改。
右侧点击"Localize...",关联本地化语言。
关联多个语言时
注意:不要忘记行末的分号
- // tabbar-色库取色
- "tabbar_library" = "色库取色";
- // tabbar-图片取色
- "tabbar_picture" = "图片取色";
- // tabbar-绘制图片
- "tabbar_draw" = "绘制图片";
- // tabbar-其它功能
- "tabbar_other" = "其它功能";
代码中调用
- let tempLibrary = "tabbar_library".localizable()
- let tempPicture = "tabbar_picture".localizable()
- let tempDraw = "tabbar_draw".localizable()
- let tempOther = "tabbar_other".localizable()
对String拓展一个localizable方法去取值,便于使用。
- import Foundation
-
- extension String {
-
- /// 调用本地化
- func localizable() -> String {
- return Bundle.main.localizedString(forKey: self, value: nil, table: nil)
- }
-
- }
点击视图,右侧查询Object ID。
本地化文件中,对value进行配置。
- /* Class = "UISearchBar"; placeholder = "搜索颜色"; ObjectID = "mRj-Ar-rIz"; */
- "mRj-Ar-rIz.placeholder" = "搜索颜色";
点击info.plist右键选择open as source code,查看我们所要获取权限的原始key。
新版Xcode获取不出来数据不用急,去代码中将info打印出来,拿到key效果一样。
- let tempInfo = Bundle.main.infoDictionary
- print(tempInfo!)
运行APP,然后切换手机语言为英语,会发现软件名称变成了英文。
苹果官方告知,因为启动页是静态的,任何展示在上面的文字都不能被国际化,所以要避免在启动页上包含文本。
既然一个LaunchScreen文件无法满足我们的需求,我们就为每种语言单独创建一个LaunchScreen文件,再到info.plist的本地化中去配置“UILaunchStoryboardName”。
示意图