2
我可以在我的其他語言的Localizable.strings文件中使用默認語言(例如英文)作爲未翻譯的密鑰嗎?當密鑰未被翻譯時使用默認的語言回退
我可以在我的其他語言的Localizable.strings文件中使用默認語言(例如英文)作爲未翻譯的密鑰嗎?當密鑰未被翻譯時使用默認的語言回退
要達到此目的,您可以使用英文單詞作爲Localizable.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)
不是最乾淨的方式來實現,但你明白了。
我以爲有一個系統集成在xcode中。我會這樣做,謝謝! –