我在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/

10-11 02:21