我正在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文档中获取此页面的规则,则输出值为“other”类型: http://www.unicode.org/cldr/charts/latest/supplemental/language_plural_rules.html 对于“9”,它应该返回“很多”类型的键。
我做错了吗?
答案 0 :(得分:0)
好吧,我已经弄清楚了......
问题可能是由AppCode 造成的,有些奇怪的bug。它在我添加
时发生-AppleLanguages (pl)
编辑配置中的到程序参数。 当我通过Xcode运行我的应用时不会发生。
在AppCode中我也尝试过:
-AppleLanguages (pl)
-AppleLanguages (pol)
-AppleLanguages (Polish)
具有相同的输出。有趣的是我跑的时候
-AppleLanguages(pl)
应用程序之间没有空格以英语运行,所以这意味着这些参数实际工作并选择正确的 Localizable.stringsdict 只是有这个复数规则的错误......
如果有人有解决方法,我会很感激,因为现在我没有办法通过AppCode运行我的应用并测试不同的语言。