我有一个 Localization 结构体,可以帮助管理本地 key 。
struct Localization {
//Home
static let HomeHeader = "Home_Header"
static let HomeStatusActive = "Home_Status_Active"
static let HomeStatusDelayed = "Home_Status_Delayed"
}
另外,我有一个名为 local 的字符串扩展名,以便为我提供来自 Localizable.strings 文件的 key 。
extension String {
var local : String {
return LocalizationManager.getLocalizedString(key: self)
}
}
所以当我需要本地化 key 时,我会像这样使用它;
titleLabel.text = Localization.HomeHeader.local
我的问题;有没有一种方法可以执行扩展以在结构的每个常量上使用,而无需每次都调用 .local?
基本上,我想调用如下;
titleLabel.text = Localization.HomeHeader
非常感谢。
最佳答案
对您目前已实现的内容进行最小的更改。您可以简单地在字符串值之后添加本地。
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)
}
}
然后你就可以像这样使用它了:
titleLabel.text = Localization.HomeHeader
关于ios - 如何为结构的所有常量编写扩展?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50618174/