Swift(iOS)中带占位符和多个支持的动态字符串
发布时间:2020-12-14 05:41:11 所属栏目:百科 来源:网络整理
导读:我是 Swift和iOS编程的新手,我在Swift中遇到了一个关于带有占位符和多元支持的动态字符串的问题 例如,如果您有一个多语言应用程序,并且不想硬编码字符串和标签和消息等… 我可以在Android中轻松地使用以下代码在不同文件夹中的XML文件中执行此操作,其中andro
|
我是
Swift和iOS编程的新手,我在Swift中遇到了一个关于带有占位符和多元支持的动态字符串的问题
例如,如果您有一个多语言应用程序,并且不想硬编码字符串和标签和消息等… 我可以在Android中轻松地使用以下代码在不同文件夹中的XML文件中执行此操作,其中android设备将根据当前区域设置查找字符串: <string name="name">You have %2$d new messages.</string>
<plurals name="name">
<item quantity="one">You have a new message.</item>
<item quantity="other">You have %2$d new messages.</item>
</plurals>
借助上述XML和以下Java: res.getString(R.string.name,mailCount) res.getQuantityString(R.plurals.name,mailCount,mailCount) 这项工作是在Android中完成的,我正在寻找与Swift(iOS)相对应的解决方案
1:设置项目本地化,如截图所示,项目有英语和俄语.
2:创建一个名为Localizable.stringsdict的空属性列表文件并粘贴如下: <?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>NumberOfMessages</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>%#@value@</string>
<key>value</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>NSStringFormatValueTypeKey</key>
<string>d</string>
<key>one</key>
<string>You have a new message.</string>
<key>other</key>
<string>You have %d new messages.</string>
</dict>
</dict>
</dict>
</plist>
3:为每种语言本地化以上文件,请参见截图,该文件已本地化为英语和俄语语言: 用法: String(format: NSLocalizedString("NumberOfMessages",comment: ""),1)
输出:您有一条新消息. String(format: NSLocalizedString("NumberOfMessages",2)
输出:您有2条新消息. 多个规则:在XML代码中,注意< key> one< / key>和< key>其他< / key>,根据语言和要求,您可以使用零,一,二,几,多,其他. 有关特定于语言的复数规则的更多信息,请使用以下链接:http://www.unicode.org/cldr/charts/latest/supplemental/language_plural_rules.html (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
