在 Xcode 中使用 stringsdict 文件,我将如何支持在显示的最终文本中不显示数字的标签的复数形式?
例如,如果我有一个标签"Days Since"和另一个带有相应数字的标签,当它们是两个单独的标签时,如何将其输入到 stringsdict 文件中?
谢谢。
这就像您希望的那样简单。将数字添加到可本地化的字符串中,但不要在翻译中使用它。在翻译中不提及变量是完全可以的;也许您想键入 0 或 1 而不是 0 或 1。
例如,在 SwiftUI 中,以下内容将查找复数翻译:Text("(count) days")
.
正常的英文字符串文件如下所示,并导致0 days
、1 day
、2 days
等:
<?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>%lld days</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>%#@days@</string>
<key>days</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>NSStringFormatValueTypeKey</key>
<string>d</string>
<key>one</key>
<string>%d day</string>
<key>other</key>
<string>%d days</string>
</dict>
</dict>
</dict>
</plist>
要实现您的目标,只需从翻译中删除%d
即可。然后,结果将days
(对于 0(、day
(对于 1(、days
(对于 2+(:
<?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>%lld days</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>%#@days@</string>
<key>days</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>NSStringFormatValueTypeKey</key>
<string>d</string>
<key>one</key>
<string>day</string>
<key>other</key>
<string>days</string>
</dict>
</dict>
</dict>
</plist>