2015-05-29 60 views

回答

1

要達到此目的,您可以使用英文單詞作爲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) 

不是最乾淨的方式來實現,但你明白了。

+0

我以爲有一個系統集成在xcode中。我會這樣做,謝謝! –