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"