2014-10-31 11 views
6

Tôi đang cố gắng tìm hiểu cách sử dụng NSLocalizedString với các biến.NSLocalizedString với các biến Swift

Ví dụ: nếu tôi muốn xuất "của Peter và Larry", trong tệp Localizable.strings của mình, tôi có nên làm như sau không?

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

Làm thế nào tôi sẽ gọi NSLocalizedString("account.by_user", comment: "") với nếu có 2 biến name1name2 nơi name1 = Peter và name2 = Larry?

Trả lời

10

có, bạn nên có "account.by_user" = "by %@ and %@"; và thực hiện việc này:

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

Đây là một cách khác và làm thế nào tôi làm điều đó.

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

về cơ bản, ý tưởng chính của String Localized với định dạng là như thế này:

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

'Tôi yêu% @ và% @' là khóa của chuỗi, tại sao bạn đặt '% @' ở đó ... – user25

+0

'% @' là trình giữ chỗ cho bất kỳ giá trị nào (* toán học & khoa học liên tục) đang được dịch nhưng đặt sau, do đó sử dụng 'String.localizedStringWithFormat'. –

+0

https://stackoverflow.com/a/28067154/4548520 điều này có vẻ chính xác hơn cho tôi – user25

3

Thêm một mẫu nhỏ bên dưới như nó đã cho tôi một thời gian để tìm các tập tin định dạng Localizable.strings.

Ví dụ về cách thêm biến vào chuỗi cục bộ:

Trong mã:

let myVar: String = "My Var" 

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

Trong file Localizable.strings:

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

Tất nhiên, %@ ở bên phải có thể được thay thế:

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

Ngoài ra, %@ có thể được thay thế bằng %d cho int hoặc %f cho phao.

Các vấn đề liên quan