1.本地化字符串
打开项目查看PROJECT-Info属性,找到 Localizables 区域,可以看到工程默认支持英文,可以点击 -
减号将其删除,也可以点击 +
号,添加新的语言支持。
点击添加中文
点击 finish 按钮
现在项目中支持,中文,英文,阿拉伯语言。添加阿拉伯语言是为了下面将界面布局的国际化。
新建一个文件,选择 String File
文件名命名为 Localizable.string 要注意一定要命名为 Localizable,大小敏感。
点击 Localizable.string 文件
点击 Localize按钮
再点击 Localize按钮,可以看到
可以看到所有的本地化文件。
就是这几个文件管理着本地化的字符串内容。
使用本地化字符串
let str = NSLocalizedString("hello", comment: "hello")
本地化图片
本地图片不能是 Asset.scassets 中的图片,新建文件夹resource,拖入图片,点击图片
show in File inspector
可以看到
把后缀是 lproj 的文件中的图片换了,名字保持一致。
let image = UIImage(named: "advertisement_main_1@2x.jpg")
这是一种方式,还有另一种方式。
把需要本地化的图片,拖入 Assets.xcassets 中,命名不同国家的图片,根据字符串的本地化去取不同国家的图片。
3.xib storyboard 的文件的本地化
新建 xib 或者 storyboard 文件
点击属性里的 localize按钮,添加支持的国家
将 Localizable Strings 转换为 interface Builder Cocoa Touch XIB。然后根据进行不同的布局调整。
4.补充,布局左右对齐的本地化
在中东地区,他们的阅读书写方式是从右到左的,所以国际化的时候需要考虑到 RTL
在 iOS9以后是默认是支持 RTL
的,之前的是不支持的。
UIView.appearance().semanticContentAttribute = .forceRightToLeft
如果不管 iOS8以下用户的死活,默认就是支持的。如果要考虑用iOS8以下的用户,就要用到 xib storyboard 文件的本地化布局不同。
5.应用名字的本地化
点击 info.plist 查看属性面板,点击 localize按钮添加各个国家的支持。
然后将 info.plist 文件中的 key值,写入 infoPlist.strings文件,并有对应值的即可达到本地化appName,以及其他相关东西。
xcode 中所有非代码文件都可以添加本地化支持。
点击文件,查看属性面板里是否有 localize 按钮,有的都可以添加本地化支持。
如果还有新的本地化没有涉及到,请联系我,共同研究学习。