iOS .stringsdict无法正常工作

我试图在iOS编程中使用.stringsdictfunction来显示数字的正确序号后缀(st,nd,rd等)。 我已经创build了英文的.stringsdict文件,但只使用“one”和“other”键。 这是无视“两个”和“less数”的select。 有人看到我在这里做错了吗?

该文件如下所示:

<?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>TEAM_RANK_ORDINAL</key> <dict> <key>NSStringLocalizedFormatKey</key> <string>%#@ordinal_string@</string> <key>ordinal_string</key> <dict> <key>NSStringFormatSpecTypeKey</key> <string>NSStringPluralRuleType</string> <key>NSStringFormatValueTypeKey</key> <string>lu</string> <key>one</key> <string>%lust</string> <key>two</key> <string>%lund</string> <key>few</key> <string>%lurd</string> <key>other</key> <string>%luth</string> </dict> </dict> </dict> </plist> 

然后,我从Swift那里访问它。 对于值1附加st,但是每隔一个数字附加th:

  let fmt = NSLocalizedString("TEAM_RANK_ORDINAL", comment: "") for i in 0...30 { println(String(format: fmt, i)) } 

英语区域忽略了“两”和“less”的规则,只使用“一”和“其他”。

请参阅“国际化和本地化指南”中的多项规则属性 :

类别的含义是依赖于语言的,并不是所有的语言都具有相同的类别。

例如,英文只使用oneother类别代表复数forms。 阿拉伯语对于zeroonetwofewmanyother类别有不同的复数forms。 …

有(据我所知)没有办法使用.stringsdict文件来产生序号。