Спросите свой вопрос и получите сводку документа, используя эту страницу и выбранного вами поставщика AI
Содержимое этой страницы было переведено с помощью ИИ.
Смотреть последнюю версию оригинального контента на английскомЕсли у вас есть идея по улучшению этой документации, не стесняйтесь внести свой вклад, подав запрос на вытягивание на GitHub.
Ссылка на документацию GitHubКопировать Markdown документа в буфер обмена
Как сделать компонент многоязычным (i18n) с Intlayer
В этом руководстве показаны минимальные шаги для создания многоязычного UI-компонента в двух популярных конфигурациях:
- React (Vite/SPA)
- Next.js (App Router)
Сначала вы объявите свой контент, затем получите его в своем компоненте.
1) Объявите ваш контент (общий для React и Next.js)
Создайте файл объявления контента рядом с вашим компонентом. Это позволяет держать переводы близко к месту их использования и обеспечивает типобезопасность.
Также поддерживается JSON, если вы предпочитаете конфигурационные файлы.
2) Получение вашего контента
Случай A. React приложение (Vite/SPA)
Стандартный подход: используйте useIntlayer для получения по ключу. Это позволяет компонентам оставаться легкими и типизированными.
Серверный рендеринг или использование вне провайдера: используйте react-intlayer/server и передавайте явный locale при необходимости.
Альтернатива: useDictionary может читать весь объявленный объект, если вы предпочитаете размещать структуру непосредственно в месте вызова.
Случай B. Next.js (App Router)
Предпочитайте серверные компоненты для безопасности данных и производительности. Используйте useIntlayer из next-intlayer/server в серверных файлах и useIntlayer из next-intlayer в клиентских компонентах.
Совет: Для метаданных страницы и SEO вы также можете получать контент с помощью getIntlayer и генерировать многоязычные URL с помощью getMultilingualUrls.
Почему подход Intlayer к компонентам лучший
- Совмещение: Объявления контента находятся рядом с компонентами, что снижает рассогласование и улучшает повторное использование в дизайн-системах.
- Типобезопасность: Ключи и структуры строго типизированы; отсутствующие переводы выявляются на этапе сборки, а не во время выполнения.
- Server-first: Работает нативно в серверных компонентах для лучшей безопасности и производительности; клиентские хуки остаются эргономичными.
- Tree-shaking: В бандл включается только контент, используемый компонентом, что позволяет сохранять размер payload небольшим в больших приложениях.
- DX и инструменты: Встроенный middleware, помощники SEO и опциональные Визуальный редактор/AI-переводы упрощают повседневную работу.
Смотрите сравнения и шаблоны в обзоре, ориентированном на Next.js: https://intlayer.org/blog/next-i18next-vs-next-intl-vs-intlayer
Связанные руководства и ссылки
- Настройка React (Vite): https://intlayer.org/doc/environment/vite-and-react
- React Router v7: https://intlayer.org/doc/environment/vite-and-react/react-router-v7
- TanStack Start: https://intlayer.org/doc/environment/vite-and-react/tanstack-start
- Настройка Next.js: https://intlayer.org/doc/environment/nextjs
- Почему Intlayer вместо next-intl или next-i18next - https://intlayer.org/blog/next-i18next-vs-next-intl-vs-intlayer
Эти страницы включают полную настройку, провайдеры, маршрутизацию и помощники SEO.