在swift中做一个更好的语言方法3

时间:2017-06-20 09:59:15

标签: ios swift

我目前正在使用具有语言更改功能的应用。但是,对于我希望在选择其他语言时进行更改的每个字符串,我必须实现以下代码

"Hello world".localize()

然而,随着应用程序变得越来越大,代码变得非常混乱,因为它们各自的视图控制器中的所有字符串都有这个.localize()附加到它。

有没有办法让我能在一个中心位置做这个.localize()的事情?

编辑:我尝试创建一个Strings.swift文件并将所有字符串放入其中。我做了这样的事。

static let relevantString = "hello world".localize()

然后在视图控制器中调用

let myString = relevantString 

然而,这并不好。字符串只会在我终止应用程序并重新启动后才会更改。

1 个答案:

答案 0 :(得分:2)

您尝试使用static let无法生成您想要的动态行为,因为您使用了常量。您可以使用只读计算属性,例如:

var relevantString : String { return "Hello World".localize() }

作为替代方案,因为您似乎更关心杂乱,您可以定义一个简单的前缀或后缀一元运算符,在其参数上调用localize()。 Swift允许将许多符号用作运算符,因此运算符只能是单个字符。例如,您可以定义§,以便§"Hello World"生成本地化字符串。

HTH