Строковый мультипликатор с NSNumberFormatter

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

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

1 вещь

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

2,364 вещи

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

2364 вещи

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

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

1 ответ

Решение

Так как у вас уже есть .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 вещи

Другие вопросы по тегам