![](/img/trans.png)
[英]How to add regular string placeholders to a translated plurals .stringdict in swift ios
[英]iOS. Pluralization. Stringdict with format that contains 2 int arguments
我的問題類似於如何在 swift ios 中將常規字符串占位符添加到翻譯的復數 .stringdict 中,但我試圖了解是否可以將 2 個 int 參數傳遞給字符串 dict。
假設我想翻譯以下內容:
1 apple : 3 pears
2 apples : 1 pear
是否可以在一種本地化格式字符串中執行此操作,例如:
let apples = 1
let pears = 3
let applesAndPears = String.localizedStringWithFormat(<format>, apples, pears)
print(applesAndPears)
還是我必須將它們分開組合?
一種格式就足夠了。 您可以在NSStringLocalizedFormatKey
條目中使用多個占位符,並為每個占位符使用帶有復數規則的單獨字典。 例子:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>apples_and_pears</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>%#@num_apples@ : %#@num_pears@</string>
<key>num_apples</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>zero</key>
<string>no apple</string>
<key>one</key>
<string>1 apple</string>
<key>other</key>
<string>%ld apples</string>
</dict>
<key>num_pears</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>NSStringFormatValueTypeKey</key>
<string>ld</string>
<key>zero</key>
<string>no pear</string>
<key>one</key>
<string>1 pear</string>
<key>other</key>
<string>%ld pears</string>
</dict>
</dict>
</dict>
</plist>
用法:
let apples = 1
let pears = 3
let format = NSLocalizedString("apples_and_pears", comment: "")
let applesAndPears = String.localizedStringWithFormat(format, apples, pears)
print(applesAndPears) // 1 apple : 3 pears
這可以與位置參數結合使用:如果格式更改為
<key>NSStringLocalizedFormatKey</key>
<string>%2$#@num_pears@ : %1$#@num_apples@</string>
然后輸出變成“3個梨:1個蘋果”。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.