Intl API: интернационализация в JavaScript
Обычно разработчики форматируют даты и числа «вручную»: конкатенацией строк или костылями. Но у браузеров уже есть встроенный инструмент — Intl API. Он решает задачи интернационализации (i18n) и избавляет от лишних библиотек.
1. Форматирование чисел
📌 Локаль ('de-DE', 'en-US') задаёт стиль записи чисел.
2. Валюта
Теперь цены отображаются привычно для пользователей разных стран.
3. Даты и время
📌 Можно настраивать dateStyle, timeStyle, часовые пояса и даже календари.
4. Сравнение строк
Без Intl.Collator сортировка могла бы работать неправильно для кириллицы.
Где это полезно?
• Мульти-язычные проекты (сайты, интернет-магазины).
• Корректное отображение цен, дат, валют и чисел для разных стран.
• Локализованная сортировка (например, списки по алфавиту).
#полезности
Обычно разработчики форматируют даты и числа «вручную»: конкатенацией строк или костылями. Но у браузеров уже есть встроенный инструмент — Intl API. Он решает задачи интернационализации (i18n) и избавляет от лишних библиотек.
1. Форматирование чисел
const number = 1234567.89;
console.log(new Intl.NumberFormat('de-DE').format(number));
// 1.234.567,89 (немецкий формат)
console.log(new Intl.NumberFormat('en-US').format(number));
// 1,234,567.89 (американский)
📌 Локаль ('de-DE', 'en-US') задаёт стиль записи чисел.
2. Валюта
const price = 1999.99;
const usd = new Intl.NumberFormat('en-US', { style: 'currency', currency: 'USD' });
console.log(usd.format(price)); // $1,999.99
const eur = new Intl.NumberFormat('de-DE', { style: 'currency', currency: 'EUR' });
console.log(eur.format(price)); // 1.999,99 €
Теперь цены отображаются привычно для пользователей разных стран.
3. Даты и время
const date = new Date();
const us = new Intl.DateTimeFormat('en-US').format(date);
console.log(us); // 8/21/2025
const ru = new Intl.DateTimeFormat('ru-RU', { dateStyle: 'full' }).format(date);
console.log(ru); // четверг, 21 августа 2025 г.
📌 Можно настраивать dateStyle, timeStyle, часовые пояса и даже календари.
4. Сравнение строк
const collator = new Intl.Collator('ru-RU');
console.log(['ёж', 'яблоко', 'арбуз'].sort(collator.compare));
// ['арбуз', 'ёж', 'яблоко']
Без Intl.Collator сортировка могла бы работать неправильно для кириллицы.
Где это полезно?
• Мульти-язычные проекты (сайты, интернет-магазины).
• Корректное отображение цен, дат, валют и чисел для разных стран.
• Локализованная сортировка (например, списки по алфавиту).
#полезности
👍2❤1