iOS本地化:复数和NSNumberFormatter

Jas*_*all 3 cocoa-touch objective-c ios

是否有可能使用NSNumberFormatter进行NSNumber格式化以及stringsdict中的复数规则?

我需要有格式化数字的下一个(单独数千).如果我使用NSNumberFormatter格式化数字 - 我收到NSString并且我不能再使用复数规则,因为iOS无法理解短语是来自NSString的单个还是复数名词.

单身" 1锻炼 "

复数的" 1,732,123锻炼 "

NSNumberFormatter* numberFormatter = ...;
[NSString stringWithFormat:NSLocalizedString(@"%@ Workouts!", @"n Workout(s)"), [numberFormatter stringFromNumber:value]]
Run Code Online (Sandbox Code Playgroud)

Jas*_*all 8

经过一些研究,我发现,我可以在没有NSNumberFormatter的情况下将数千个数字分开,只需使用localizedStringWithFormat.它还使我有可能使用复数规则.

[NSString localizedStringWithFormat:NSLocalizedString(@"%@ Workouts!", @"n Workout(s)"), value]
Run Code Online (Sandbox Code Playgroud)

Localizable.stringsdict

...
<key>%@ Workouts</key>
<dict>
    <key>NSStringLocalizedFormatKey</key>
    <string>%#@Workouts@</string>
    <key>Workouts</key>
    <dict>
        <key>NSStringFormatSpecTypeKey</key>
        <string>NSStringPluralRuleType</string>
        <key>NSStringFormatValueTypeKey</key>
        <string>@</string>
        <key>one</key>
        <string>%@ Workout!</string>
        <key>other</key>
        <string>%@ Workouts!</string>
    </dict>
</dict>
....
Run Code Online (Sandbox Code Playgroud)