为此,您可以使用英文单词作为 Localized.strings 文件中的键。
另一种方法是检查 NSLocalizedString 的结果并返回默认的英文版本(使用“强制”捆绑),以防结果与密钥相同。
它可能看起来像这样
extension NSString {
class func NSLocalizedStringWithDefault (key:String, comment:String)->String {
let message = NSLocalizedString(key, comment: comment)
if message != key {
return message
}
let language = "en"
let path = NSBundle.mainBundle().pathForResource(language, ofType: "lproj")
let bundle = NSBundle(path: path!)
if let forcedString = bundle?.localizedStringForKey(key, value: nil, table: nil){
return forcedString
}else {
return key
}
}
}
Localized.string(eng)
"test-key-1" = "Test 1";
"test-key-2" = "Test 2";
Localized.string (esp)
"test-key-1" = "El Test 1";
那么你可以像这样使用它(假设区域设置设置为“es”):
println(NSString.NSLocalizedStringWithDefault("test-key-1", comment: "")) // El Test 1
println(NSString.NSLocalizedStringWithDefault("test-key-2", comment: "")) // Test 2 (from eng file)
这不是最干净的实施方式,但你明白了。