让系统控件显示本地化文本
- 以中文为例: 默认情况下,新建的Xcode项目系统控件是不支持中文的,所以就得添加中文作为支持的语言
在➕位置选择中文,这样系统控件在中文环境下就会自动显示中文了
- 以此类推,将你想要支持的语言在这个位置添加
SB中文本的国际化
- 经过上一步,SB会自动创建一个新的文件夹,并且将已经有的文本自动抽取出来
- 因为 Xcode默认支持的是英文,所以我们在SB中的文字最好是因为,然后再生成其他语言的文件即可
- 所以我们暂时将生产出来的中文文件删除
- 将SB中的中文先默认换成英文
- 将默认的中文全部替换为英文之后,再次将中文选中,会再次生成一个中文文件
- 在生成的文件中,将对应的英文替换为想要的中文
- 这时候再次运行app,并切换语言,可以发现SB中设置的文本已经可以在英文和中文相互切换了
- 快速切换app运行语言环境:按住option/alt 点击run按钮,在run中选中Option,在App Lanuague中可以选择运行的语言环境并启动
- 注意:SB生成的文件不会及时更新,解决办法:使用bartycrouch
代码中文本的国际化方法一
- 选中项目New File->选择Strings File,新建Localizable.strings文件(一个字都不能错)
- 在项目中使用文本的地方使用
//假如之前是 UIImage(named: "发现")现在就是
NSLocalizedString("Discovery", comment: "发现")
- 回到Localizable.strings文件,右边导航栏
- 选择中文
- 在文件中写入
"Discovery" = "发现";
- 注意:如果没有找到相应语言的value,就会以key为value,例如基于以上操作,其实只是设置了在中文环境下显示为:发现,并没有设置英文环境下显示什么文本,但是我们在运行时会发现英文环境下显示的value就是:Discovery
代码中文本的国际化方法二
- 在项目中使用文本的地方使用
//假如之前是 UIImage(named: "发现")现在就是
NSLocalizedString("Discovery", comment: "发现")
- 使用终端到这个项目下面
genstrings -o zh-Hans.lproj *.swift
//默认只能在同一目录下找,所以得手动一个个文件夹去执行
genstrings -o zh-Hans.lproj Home/*.swift
- 注意:运行这个命令也会覆盖之前的数据
App名称国际化
- 将Dispaly Name 改成英文
- 新建InfoPlist.strings文件
"CFBundleDisplayName" = "中文名";
- 注意:这时候想要看到效果只能手动去设置里面切换语言
图片国际化方法一
- 在项目中有些时候图片带了文字,这时候也需要进行国际化处理
- 这和图片的黑暗模式适配一样,放入对应语言的图片即可
图片国际化方法二
- 因为图片的加载一般是UIImage(named: "发现"),可以参考文本的国际化进行设置