带有 NSNumberFormatter 的字符串复数

String pluralizer with NSNumberFormatter

我想通过常用的复数技术 .stringsdict 文件显示一个格式良好的整数值。 (苹果文档 here.

所以如果我有一件事,我希望我的输出显示为

1 thing

但是如果我有两千三百六十四个东西,我想要那些逗号:

2,364 things

可惜字符串复数化技术没有给我:

2364 things

我可以用 NSNumberFormatter 来实现逗号。我可以用.stringsdict本地化技术实现多元化

我可以轻松实现两者吗?

因为您已经 .stringsdict 文件设置了正确的复数字符串,所以您实际上不需要数字格式化程序。只需使用 StringNSString.

localizedStringWithFormat 方法

假设您已经在 Localizable.strings 文件和 .stringsdict 文件中设置了本地化密钥 "%d things",您的代码将类似于:

Swift:

let things = 2364
let localizedString = String.localizedStringWithFormat(NSLocalizedString(@"%d things", @"Your comment"), things)

Objective-C:

int things = 2364;
NSString *localizedString = [NSString localizedStringWithFormat:NSLocalizedString(@"%d things", @"Your comment"), things];

根据您的语言环境,结果将类似于:

2,364 things
2.364 things
2 364 things