2014-10-31 64 views
6

我想弄清楚如何在變量中使用NSLocalizedString。帶變量的NSLocalizedString Swift

例如,如果我想輸出「by Peter and Larry」,在我的Localizable.strings文件中,我應該具有以下內容嗎?

"account.by_user" = "by %@ and %@"; 

我怎麼會叫NSLocalizedString("account.by_user", comment: "")用,如果有2個變量name1name2其中name1 =彼得和name2 =拉里?

回答

10

是的,你應該有"account.by_user" = "by %@ and %@";並藉此:

let myString = String(format: NSLocalizedString("account.by_user", comment: "any comment"), "Peter","Larry") 
7

這是另一種方式,我是怎麼做的。

let myString = String.localizedStringWithFormat(NSLocalizedString("by %@ and %@", comment: "yourComment"), name1, name2) 

基本上與格式本地化的字符串的主要思路是這樣的:

let math = "Math" 
let science = "Science" 
String.localizedStringWithFormat(NSLocalizedString("I love %@ and %@", comment: "loved Subjects"), math, science) 
+0

'我愛%@和%@'是字符串的關鍵,爲什麼你把'%@'放在那裏...... – user25 2018-02-14 14:22:21

+0

'%@'是任何值(*常數和科學)的佔位符,它不是被翻譯但被放置後,因此使用'String.localizedStringWithFormat'。 – 2018-02-16 01:57:18

+0

https://stackoverflow.com/a/28067154/4548520這看起來對我更正確 – user25 2018-02-16 20:55:40

3

下面的添加爲我花了一些時間來計算的Localizable.strings文件格式的一小部分。

在代碼:

let myVar: String = "My Var" 

String(format: NSLocalizedString("translated_key %@", 
     comment: "Comment"), myVar) 

在Localizable.strings文件:

"translated_key %@" = "My var is: %@"; 

當然,%@右側

添加變量來本地化字符串的實施例可以更換:

"translated_key %@" = "My var is: %@"; 
"translated_key %@" = "%@ is my var"; 
"translated_key %@" = "I use %@ as my var"; 

另外,%@可以替換爲%d int或%f浮點數。