Мультипликатор строки с NSNumberFormatter - PullRequest
0 голосов
/ 05 мая 2018

Я хочу отобразить красиво отформатированное целочисленное значение с помощью обычной технологии .stringsdict. (Apple документы здесь. )

Так что, если у меня есть одна вещь, я хочу, чтобы мой вывод читался

1 вещь

Но если у меня две тысячи триста шестьдесят четыре вещи, я хочу запятые:

2,364 вещи

но, увы, технология плюрализации строк мне их не дает:

2364 вещи

Я могу получить запятые с NSNumberFormatter. Я могу добиться плюрализации с .stringsdict технологией локализации.

Могу ли я легко достичь обоих?

1 Ответ

0 голосов
/ 05 мая 2018

Поскольку у вас уже есть .stringsdict файлы, настроенные с должным образом множественными строками, вам на самом деле не нужно средство форматирования чисел. Просто используйте localizedStringWithFormat метод String или NSString.

Если вы настроили локализованный ключ "%d things" в файлах Localizable.strings и в файлах .stringsdict, ваш код будет выглядеть примерно так:

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 вещи
2.364 вещи
2 364 вещи

...