Строковый мультипликатор с 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 вещи