我在iOS项目中进行波兰语本地化,在Localizable.stringsdict文件中我得到了密钥:
<key>general_people_number</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>zero</key>
<string>%d osób</string>
<key>one</key>
<string>%d osoba</string>
<key>few</key>
<string>%d osoby</string>
<key>many</key>
<string>%d osób</string>
<key>other</key>
<string>%d other</string>
</dict>
</dict>
现在当我试图使用:
String.localizedStringWithFormat(NSLocalizedString("general_people_number", comment: ""), 9)
输出为:
9 other
因此,输出值是“其他”类型,但如果我从Swift文档中获得此页的规则:
http://www.unicode.org/cldr/charts/latest/supplemental/language_plural_rules.html
对于“9”,它应该返回“many”类型的键。
我做错什么了吗?
最佳答案
好吧,我想出来了。。。
这个问题可能是由AppCode引起的,一些奇怪的错误。当我加上
-AppleLanguages (pl)
编辑配置中的程序参数。当我通过Xcode运行我的应用程序时不会发生这种情况。
在AppCode中,我也尝试过:
-AppleLanguages (pl)
-AppleLanguages (pol)
-AppleLanguages (Polish)
输出相同。有趣的是我跑步的时候
-AppleLanguages(pl)
应用程序在英语中运行时没有空格,所以这意味着这些参数实际上起作用并选择适当的本地化。stringsdict只是对这个复数规则有缺陷。。。
如果有人修复了这个问题,我会很感激你的解释,因为现在我没有任何方法可以通过AppCode运行我的应用程序并测试不同的语言。
关于ios - swift * .stringsdict返回错误的 key 以获取抛光值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49843081/