Интернационализация: i18n
Пользователь из другой страны видит другой язык, формат даты и цену в своей валюте. i18n — это не «перевод фраз», а целая система локализации данных.
Строки в файлах локалей
// ru.json
{ "button.buy": "Купить", "cart.title": "Корзина" }
// en.json
{ "button.buy": "Buy", "cart.title": "Cart" }
// в коде — ключ, а не текст:
t("button.buy")
Даты и деньги через Intl
const price = new Intl.NumberFormat("ru-RU", {
style: "currency", currency: "RUB"
}).format(1249);
// "1 249,00 ₽" — а для "en-US" будет "$1,249.00"
new Intl.DateTimeFormat("en-GB").format(date); // 01/02/2026
💡
Не склеивайте тексты руками («Добрый день, » + name) — порядок слов в языках разный. Используйте плейсхолдеры и шаблоны переводчика.
ℹ️
Готовые решения: i18next, react-i18next. Для дат и чисел сначала всегда смотрите на встроенный Intl — он покрывает большинство задач без библиотек.