Задайте вопрос и получите краткое содержание документа через любого ИИ-провайдера на этой странице
История версий
- "Инициализация истории"v9.0.013.06.2026
Содержимое этой страницы было переведено с помощью ИИ.
Смотреть последнюю версию оригинального контента на английскомIf you have an idea for improving this documentation, please feel free to contribute by submitting a pull request on GitHub.
GitHub link to the documentationCopy doc Markdown to clipboard
Миграция с React Intl на Intlayer
Если ваше приложение React использует react-intl (FormatJS), переход на Intlayer - это удача. Наш слой совместимости безпроблемно обрабатывает ICU MessageFormat и все существующие компоненты Formatted*.
Что делать
Начните с запуска команды инициализации в вашем проекте:
Копировать код в буфер обмена
npx intlayer initЗатем установите плагин Intlayer Vite или Next.js в вашу конфигурацию. Этот плагин впрыскивает псевдонимы времени сборки для перенаправления импортов react-intl на @intlayer/react-intl.
Копировать код в буфер обмена
import { defineConfig } from "vite";import react from "@vitejs/plugin-react";import reactIntlVitePlugin from "@intlayer/react-intl/plugin";export default defineConfig({ plugins: [react(), reactIntlVitePlugin()],});Что происходит под капотом
Плагин bundler создает псевдоним react-intl на @intlayer/react-intl. Вместо того, чтобы вручную парсить большие JSON файлы и оборачивать ваше приложение в IntlProvider, плагин Intlayer статически извлекает ключи и использует словари Intlayer во время выполнения.
Под капотом:
- ICU MessageFormat: Intlayer использует resolver
resolveMessage(..., 'icu'), который полностью поддерживает множественное число ICU, выбор, форматирование дат/чисел и теги rich text изначально. - Вызовы методов и JSX:
intl.formatMessage({ id: 'a.b' })и<FormattedMessage id="a.b">идентифицируются плагинами компилятора Intlayer (@intlayer/babel/@intlayer/swc), преобразуя плоские точечные ключи, чтобы первый сегмент правильно разрешал на ключ словаря Intlayer. - Форматеры:
<FormattedNumber>,<FormattedDate>и т. д. переходят в встроенныеcore/formatters, используяIntl.