美文网首页
Swift-国际化/多语言适配

Swift-国际化/多语言适配

作者: 查理布朗Bio | 来源:发表于2022-11-28 16:21 被阅读0次

前言

项目开发中不同语言环境需要进行多语言适配

  • 纯代码界面开发时,直接添加本地化语言文件,并针对键值对获取即可
  • xib界面开发时,你也可以通过拖拽UI控件,间接的调用本地化语言文件,但这显然不是最优的解决方案,实际上苹果已兼容了这种情况,可以直接针对对应的xib文件进行本地化语言处理

首先为项目添加国际化语言

全局添加需要适配的多语言

纯代码本地化

1.创建本地化文件,推荐使用localizable命名


创建本地化文件
选择对应的本地化语言
勾选需要添加的本地化语言

2.在Strings文件中设置Key-Value

/* Localizable.string */
// Localizable (English)
"title" = "title";
// Localizable (Chinese simplified)
"title" = "标题"
// Localizable (Chinese HongKong)
"title" = "標題"

3.调用本地化方法

// 为String添加转换扩展,便于快捷调用
extension String {
  func localized() {
    return Bundle.main.localizedString(forKey: self, value: nil, table: nil)
  }
}
// 调用字符串对应的本地化字符
let title = "title".localized()

XIB本地化

1.针对控制器.xib文件添加国际化扩展


为xib添加本地化文件
勾选需要添加的本地化语言

针对勾选的本地化语言会自动生成对应的strings文件

/* Class = "UILabel"; text = "国际化语言"; ObjectID = "kFe-or-R4m"; */
"kFe-or-R4m.text" = "国际化语言";
ObjectID对应位置

2.设置不同的语言对应的文字
此时针对不同语言的strings文件进行文本设置就能达到多语言适配了

/* Class = "UILabel"; text = "国际化语言"; ObjectID = "kFe-or-R4m"; */
// xxxx(English).strings文件
"kFe-or-R4m.text" = "international language";

// xxxx(Chinese (HongKong)).strings文件
"kFe-or-R4m.text" = "國際化語言";

// xxxx(Chinese (Simplified)).strings文件
"kFe-or-R4m.text" = "国际化语言";

3.注意事项
针对新生成的strings,会自动关联相关的UI控件,但后续添加的UI控件并不会自动加入到strings中,此时需要在xib中将对应的语言勾选取消掉后再重新插入,注意对strings文件进行备档处理

相关文章

网友评论

      本文标题:Swift-国际化/多语言适配

      本文链接:https://www.haomeiwen.com/subject/yanlfdtx.html