大佬教程收集整理的这篇文章主要介绍了ios – 复数NSLocalizedString中的String参数,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
%@包含一天,%i包含太阳时.
这是我的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>%@ there are up to %i sun hours</key> <dict> <key>NSStringLocalizedFormatKey</key> <string>%#@hours@</string> <key>hours</key> <dict> <key>NSStringFormatSpecTypeKey</key> <string>NSStringPluralRuleType</string> <key>NSStringFormatValueTypeKey</key> <string>i</string> <key>zero</key> <string>%@ there are no sun hours</string> <key>one</key> <string>There is one sun hour %@ </string> <key>other</key> <string>%@ there are up to %i sun hours</string> </dict> </dict> </dict> </plist>
这就是我所说的:
[NSString stringWithFormat:NSLocalizedString(@"%@ there are up to %i sun hours",nil),dayString,sunHours];
无论我传入哪个NSInteger作为第二个参数,翻译都将始终与“其他”模板一起使用.我把它缩小到NSStringLocalizedFormatKey是错误的,当我使用像%@%#@ hours这样的密钥时,它正在工作.
我希望字符串参数是本地化的一部分.有没有办法做到这一点?
这本词典
<key>%i hours %@</key> <dict> <key>NSStringLocalizedFormatKey</key> <string>%#@hours@</string> <key>hours</key> <dict> <key>NSStringFormatSpecTypeKey</key> <string>NSStringPluralRuleType</string> <key>NSStringFormatValueTypeKey</key> <string>i</string> <key>zero</key> <string>%2$@ there are no sun hours</string> <key>one</key> <string>There is one sun hour %2$@ </string> <key>other</key> <string>%2$@ there are up to %1$d sun hours</string> </dict> </dict>
结合
[NSString stringWithFormat:NSLocalizedString(@"%i hours %@",sunHours,dayString];
为我产生预期的结果.请注意,我已将参数索引添加到替换字符串,以便正确放置值.
看起来这些文档在描述这个功能时过于雄心勃勃.例如,给出in the document titled “OS X 10.9 Release Notes”的示例(尽管链接适用于iOS)意味着您应该能够打开第二个参数:
但是根据指南构建字典并没有给出所述结果. (请注意,之后立即给出的示例XML与此字典不匹配.)
可能有一些我误读的东西,(或者可能存在错误),但我无法确切地说明发生了什么.现在,我将离开这个“改变参数顺序将解决你的问题”.
以上是大佬教程为你收集整理的ios – 复数NSLocalizedString中的String参数全部内容,希望文章能够帮你解决ios – 复数NSLocalizedString中的String参数所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。