Intl.PluralRules
Выбирает форму слова для числа: 1 file, 2 files.
Доступно с: ES2018
Синтаксис
new Intl.PluralRules(locales, options)Параметры
| Параметр | Тип | Описание |
|---|---|---|
| locales | string | Необязательный. Язык. |
| options | object | Необязательный. type: cardinal (количество) или ordinal (порядковый номер). |
Возвращаемое значение
Intl.PluralRulesОбъект с методом select(number).
Примеры
Формы для английского:
const rules = new Intl.PluralRules('en');
const words = { one: 'file', other: 'files' };
for (const n of [1, 2, 5]) {
console.log(`${n} ${words[rules.select(n)]}`);
}Результат:
1 file
2 files
5 filesВ русском языке форм больше:
const rules = new Intl.PluralRules('ru');
console.log(rules.select(1), rules.select(3), rules.select(5), rules.select(21));Результат:
one few many oneПорядковые числительные:
const rules = new Intl.PluralRules('en', { type: 'ordinal' });
const suffixes = { one: 'st', two: 'nd', few: 'rd', other: 'th' };
console.log([1, 2, 3, 4, 11, 22].map((n) => n + suffixes[rules.select(n)]).join(' '));Результат:
1st 2nd 3rd 4th 11th 22ndПримечания
Метод select() возвращает не слово, а категорию: zero, one, two, few, many или other. Сами слова для каждой категории вы задаёте сами.
См. также
- Intl.NumberFormat — Форматирует числа, валюты, проценты и единицы измерения по правилам языка.
- Intl.RelativeTimeFormat — Форматирует относительное время: «3 дня назад», «через час».
В учебнике
- Форматирование: Intl — Форматирование чисел, денег, дат и окончаний слов в JavaScript с учётом языка: toLocaleString, Intl.NumberFormat, Intl.DateTimeFormat и Intl.PluralRules.