Encodera

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.

Справочник JavaScript

Intl.PluralRules

Выбирает форму слова для числа: 1 file, 2 files.

Доступно с: ES2018

Синтаксис

new Intl.PluralRules(locales, options)

Параметры

ПараметрТипОписание
localesstringНеобязательный. Язык.
optionsobjectНеобязательный. 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.

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.