Ios 如何为结构的所有常量编写扩展名?

Ios 如何为结构的所有常量编写扩展名?,ios,swift,struct,Ios,Swift,Struct,我有一个本地化结构,可以帮助管理本地密钥 struct Localization { //Home static let HomeHeader = "Home_Header" static let HomeStatusActive = "Home_Status_Active" static let HomeStatusDelayed = "Home_Status_Delayed" } 另外,我还有一个名为local的字符串扩展名,它为我提供了Localiza

我有一个本地化结构,可以帮助管理本地密钥

struct Localization {

//Home
static let HomeHeader         =   "Home_Header"
static let HomeStatusActive   =   "Home_Status_Active"
static let HomeStatusDelayed  =   "Home_Status_Delayed"
}
另外,我还有一个名为local的字符串扩展名,它为我提供了Localizable.strings文件中的密钥

extension String {
    var local : String {
        return LocalizationManager.getLocalizedString(key: self)
    }
}
所以当我需要本地化密钥时,我就这样使用它

titleLabel.text = Localization.HomeHeader.local
我的问题;是否有一种方法可以在每次不调用.local的情况下对结构的每个常量执行扩展

基本上,我想打电话如下

titleLabel.text = Localization.HomeHeader
titleLabel.text = Localization.HomeHeader

非常感谢。

请查看下面的内容,可能会对您有所帮助

您可以将所有本地化字符串保留在一个位置

struct ConstantsLocalized {
    static var key_loading: String {
        return "key_loading".localized()
    }
    static var key_placeholder_email: String {
        return "key_placeholder_email".localized()
    }
}
您可以使用
ConstantsLocalized.key\u加载来访问它

编辑

我需要用这种方法增加一个优势,如果你有应用程序内本地化意味着用户可以从应用程序本身更改语言,那么这是最好的解决方案,因为你每次都可以得到本地化字符串


希望对您有所帮助

请查看下面的内容,可能会对您有所帮助

您可以将所有本地化字符串保留在一个位置

struct ConstantsLocalized {
    static var key_loading: String {
        return "key_loading".localized()
    }
    static var key_placeholder_email: String {
        return "key_placeholder_email".localized()
    }
}
您可以使用
ConstantsLocalized.key\u加载来访问它

编辑

我需要用这种方法增加一个优势,如果你有应用程序内本地化意味着用户可以从应用程序本身更改语言,那么这是最好的解决方案,因为你每次都可以得到本地化字符串


希望对您迄今为止实施的内容进行最小的更改会有所帮助。您可以简单地在字符串值之后添加本地值

struct Localization {

    //Home
    static let HomeHeader         =   "Home_Header".local
    static let HomeStatusActive   =   "Home_Status_Active".local
    static let HomeStatusDelayed  =   "Home_Status_Delayed".local
}

extension String {
    var local : String {
        return LocalizationManager.getLocalizedString(key: self)
    }
}
然后您将能够像这样使用它:


对到目前为止已经实现的内容进行最小的更改。您可以简单地在字符串值之后添加本地值

struct Localization {

    //Home
    static let HomeHeader         =   "Home_Header".local
    static let HomeStatusActive   =   "Home_Status_Active".local
    static let HomeStatusDelayed  =   "Home_Status_Delayed".local
}

extension String {
    var local : String {
        return LocalizationManager.getLocalizedString(key: self)
    }
}
然后您将能够像这样使用它: