有没有人有字符串类型的枚举与genstrings一起工作?

时间:2017-05-23 04:09:54

标签: swift localization genstrings

我尝试在项目中使用genstrings来输出本地化的字符串文件。当你有一个如下所示的字符串时,它工作正常和花花公子:

NSLocalizedString("My String", comment: "My String")

但是,我决定使用字符串类型enum来表示我的应用程序的字符串。这背后的原因是,如果应用程序需要更改副本,则在位置编辑字符串比在整个项目中切换字符串更容易。

我用于字符串的解决方案非常简单 - 就像这样:

enum MyStrings {
    enum Actions: String {
        case ok = "OK"
        case cancel = "Cancel"
    }
}

然后,为了获取本地化字符串,我实现了以下扩展名:

extension RawRepresentable where RawValue == String {
    var localizedString: String {
        return NSLocalizedString(self.rawValue, comment: "")
    }
}

非常简单,对吧?它工作正常,但在尝试使用genstrings时遇到了问题(我已经尝试了extractLocStrings,就像Apple开发者论坛上所建议的那样) - 我遇到这样的问题:

Bad entry in file .xxxx/MyViewController.swift (line = 1305): Argument is not a literal string.

这显然是因为genstrings似乎正在扫描未编译的文件。我在这里不是很有希望,但我想知道是否有人提出了解决方案?我想我不需要工作区搜索我的项目,以便每次需要更改副本时更改字符串(我们的项目相当大)。

我非常感谢任何帮助!提前谢谢。

Ĵ

0 个答案:

没有答案