如何在 Stringsdict 文件格式中添加复数而不在显示的字符串中显示数字值
How to add plural in Stringsdict file format without showing the number value in the string shown
在 Xcode 中使用 stringsdict 文件,我将如何为不会在最终显示的文本中显示数字的标签支持复数形式?
例如,如果我有一个标签 "Days Since" 和另一个具有相应编号的标签,当它们是两个单独的标签时,如何将其输入到 stringsdict 文件中?
谢谢。
正如您所希望的那样简单。将数字添加到可本地化的字符串中,但不要在翻译中使用它。在翻译中不提及变量是完全可以的;也许您想键入零或一而不是 0 或 1。
例如,在 SwiftUI 中,以下将查找复数翻译:
Text("\(count) days")
.
正常的英语 stringsdict 文件如下所示,结果为 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>
在 Xcode 中使用 stringsdict 文件,我将如何为不会在最终显示的文本中显示数字的标签支持复数形式?
例如,如果我有一个标签 "Days Since" 和另一个具有相应编号的标签,当它们是两个单独的标签时,如何将其输入到 stringsdict 文件中?
谢谢。
正如您所希望的那样简单。将数字添加到可本地化的字符串中,但不要在翻译中使用它。在翻译中不提及变量是完全可以的;也许您想键入零或一而不是 0 或 1。
例如,在 SwiftUI 中,以下将查找复数翻译:
Text("\(count) days")
.
正常的英语 stringsdict 文件如下所示,结果为 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>