Intl API

Интернационализация: форматирование чисел, дат, валют, списков.

Зачем нужно

Встроенный API для локализации без внешних библиотек. Форматирует по правилам конкретной локали. Работает в браузерах и Node.js.

Где используется

  • Отображение цен в нужной валюте
  • Форматирование дат по локали
  • Относительное время ("3 дня назад")

Code

// Числа
new Intl.NumberFormat('ru-RU').format(1234567.89);
// "1 234 567,89"

// Валюта
new Intl.NumberFormat('ru-RU', {
  style: 'currency', currency: 'RUB'
}).format(9999); // "9 999,00 ₽"

// Даты
new Intl.DateTimeFormat('ru-RU', {
  day: 'numeric', month: 'long', year: 'numeric'
}).format(new Date); // "7 апреля 2026 г."

// Относительное время
const rtf = new Intl.RelativeTimeFormat('ru', { numeric: 'auto' });
rtf.format(-1, 'day');   // "вчера"
rtf.format(3, 'hour');   // "через 3 часа"

// Списки
new Intl.ListFormat('ru', { type: 'conjunction' })
  .format(['JS', 'TS', 'Python']); // "JS, TS и Python"

// Сортировка строк
const collator = new Intl.Collator('ru');
['б', 'а', 'в'].sort(collator.compare); // ['а', 'б', 'в']

// Множественное число
const pr = new Intl.PluralRules('ru');
pr.select(1);  // "one"
pr.select(2);  // "few"
pr.select(5);  // "many"

Связанные темы

Ресурсы