3步实现iOS本地化(swift)

1. 导入 Localisation.swift 到项目

文件github下载地址:https://github.com/kmyhy/Localisation/tree/master/LocalizedSwift

2. 实现 LocalisationProtocol

新建扩展,实现 LocalisationProtocol协议,比如:

extension Localisation {
    struct Trade: LocalisationProtocol {        
       // 1.
        static var stringsTableName: String {
            return "Trade"
        }
        // 2.
        static var bundle: Bundle? {
            return Localisation.languageBundle
        }
        // 3.
        static var labelText: String {
            return localizedString(key: "label_text")
        }
        
    }
}
  1. stringsTableName 用于指定你的 strings 文件名(不包括扩展名)。
  2. bundle 属性指定你的 strings 文件所在的 bundle。
  3. labelText 属性返回 strings 文件中的每个字符串值, label_text 则是这个字符串在 strings 文件中的 key。

这里引用到了另一个 Bundle 扩展:

extension Bundle{
    static let localisationBundle = Bundle(for: Localisation.self)
}

这是因为我们的 strings 文件和 Localisation 类是位于同一个 bundle。

原则上,一个 strings 文件用一个 struct 定义。

3. 调用

首先设置语言:Localisation.setLanguage(language: "zh-Hans")
通常,app 使用的语言在一次运行中应该是统一的。因此在 app 启动时设置一次即可,不用像 demo 中那样点一次按钮设置一次。
然后这样调用:

label.text = Localisation.Trade.labelText
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值