当我将密钥传递给本地化文件中不存在的NSLocalizedString()时,如何返回静态字符串(即“ AAA”)? 如果本地化文件中不存在密钥,我只能找到有关如何退回到默认语言的信息,而找不到如何返回硬编码字符串的信息。
此代码对我有用,但我需要一个后备选项:
let localizationKey = "articles_label_" + type.lowercased()
let localizedValue = localizationKey.localized
答案 0 :(得分:0)
NSLocalizedString()
带有参数value
,如果在表中找不到给定键的本地化字符串,则返回该参数。
我推断localized
是在String
扩展名中添加的计算属性。像这样的东西:
extension String {
var localized: String {
return NSLocalizedString(self, tableName: "MyTable", bundle: Bundle.main, comment: "")
}
}
如果要添加默认值,则应将此计算的属性转换为函数。
extension String {
func localized(defaultValue: String? = nil) -> String {
return NSLocalizedString(self, tableName: "MyTable", bundle: Bundle.main, value: defaultValue ?? self, comment: "")
}
}
并像这样使用它:
let localizationKey = "articles_label_" + type.lowercased()
let localizedValue = localizationKey.localized(defaultValue: "AAA")