ГлавнаяПесочницаВитринаПриложениеДокументБлог
    • Englishанглийский
      EN
    • русскийрусский
      RU
    • 日本語японский
      JA
    • françaisфранцузский
      FR
    • 한국어корейский
      KO
    • 中文китайский
      ZH
    • españolиспанский
      ES
    • Deutschнемецкий
      DE
    • العربيةарабский
      AR
    • italianoитальянский
      IT
    • British Englishбританский английский
      EN-GB
    • portuguêsпортугальский
      PT
    • हिन्दीхинди
      HI
    • Türkçeтурецкий
      TR
    • polskiпольский
      PL
    • Indonesiaиндонезийский
      ID
    • Tiếng Việtвьетнамский
      VI
    • українськаукраинский
      UK
    /
    Alt+←
    Что такое интернационализация (i18n)?
    SEO и Интернационализация
    Руководство
    • i18n с помощью next-i18next
    • i18n с помощью next-intl
    Используйте Intlayer в вашем решении
    • Автоматизировать next-i18next
    • Автоматизировать react-i18next
    • Автоматизировать next-intl
    • Автоматизировать react-intl
    • Автоматизировать vue-i18n
    Сравнения
    • next-i18next vs next-intl vs Intlayer
    • react-i18next vs react-intl vs Intlayer
    Документация
    1. Blog
    2. Intlayer with next i18next
    Создание:2025-08-23Последнее обновление:2025-10-29
    Посмотреть видео урок

    Для этой страницы доступен видео урок.

    Ссылайтесь на этот документ на ваш любимый ассистент AI
    ChatGPT
    Claude
    DeepSeek
    Google AI mode
    Gemini
    Perplexity
    Mistral
    Grok

    Спросите свой вопрос и получите сводку документа, используя эту страницу и выбранного вами поставщика AI

    История версий

    1. Добавлен плагин loadJSON
      v7.0.601.11.2025
    2. Переход на плагин syncJSON и полный переписанный код
      v7.0.029.10.2025

    Содержимое этой страницы было переведено с помощью ИИ.

    Смотреть последнюю версию оригинального контента на английском
    Изменить эту документацию

    Если у вас есть идея по улучшению этой документации, не стесняйтесь внести свой вклад, подав запрос на вытягивание на GitHub.

    Ссылка на документацию GitHub
    Копировать

    Копировать Markdown документа в буфер обмена

    Интернационализация Next.js (i18n) с next-i18next и Intlayer

    www.youtube.com

    Содержание

    Что такое next-i18next?

    next-i18next, это один из самых популярных фреймворков для интернационализации (i18n) в приложениях Next.js. Построенный на мощной экосистеме i18next, он предоставляет комплексное решение для управления переводами, локализацией и переключением языков в проектах Next.js.

    Однако next-i18next имеет некоторые сложности:

    • Сложная конфигурация: Настройка next-i18next требует нескольких конфигурационных файлов и тщательной настройки экземпляров i18n на стороне сервера и клиента.
    • Разрозненные переводы: Файлы переводов обычно хранятся в отдельных директориях от компонентов, что затрудняет поддержание согласованности.
    • Ручное управление пространствами имён: Разработчикам необходимо вручную управлять пространствами имён и обеспечивать правильную загрузку ресурсов переводов.
    • Ограниченная типобезопасность: Поддержка TypeScript требует дополнительной настройки и не обеспечивает автоматическую генерацию типов для переводов.

    Что такое Intlayer?

    Intlayer, это инновационная, открытая библиотека интернационализации, разработанная для устранения недостатков традиционных решений i18n. Она предлагает современный подход к управлению контентом в приложениях Next.js.

    Смотрите конкретное сравнение с next-intl в нашем блоге next-i18next vs. next-intl vs. Intlayer.

    Почему стоит сочетать Intlayer с next-i18next?

    Хотя Intlayer предоставляет отличное автономное решение для i18n (см. наше руководство по интеграции с Next.js), вы можете захотеть комбинировать его с next-i18next по нескольким причинам:

    1. Существующая кодовая база: У вас уже есть реализованная система next-i18next, и вы хотите постепенно перейти на улучшенный опыт разработки с Intlayer.
    2. Требования наследия: Ваш проект требует совместимости с существующими плагинами или рабочими процессами i18next.
    3. Знакомство команды: Ваша команда привыкла к next-i18next, но хочет лучшее управление контентом.

    Для этого Intlayer может быть реализован как адаптер для next-i18next, чтобы помочь автоматизировать ваши JSON-переводы в CLI или CI/CD пайплайнах, тестировать ваши переводы и многое другое.

    В этом руководстве показано, как использовать превосходную систему декларации контента Intlayer, сохраняя при этом совместимость с next-i18next.


    Пошаговое руководство по настройке Intlayer с next-i18next

    Шаг 1: Установка зависимостей

    Установите необходимые пакеты с помощью предпочитаемого менеджера пакетов:

    bash
    Копировать код

    Копировать код в буфер обмена

    npm install intlayer @intlayer/sync-json-plugin --save-devnpx intlayer init

    Объяснение пакетов:

    • intlayer: Основная библиотека для декларации и управления контентом
    • @intlayer/sync-json-plugin: Плагин для синхронизации деклараций контента Intlayer с форматом JSON i18next

    Шаг 2: Реализация плагина Intlayer для обёртывания JSON

    Создайте файл конфигурации Intlayer для определения поддерживаемых локалей:

    Если вы также хотите экспортировать JSON-словарь для i18next, добавьте плагин syncJSON:

    intlayer.config.ts
    Копировать код

    Копировать код в буфер обмена

    import { Locales, type IntlayerConfig } from "intlayer";import { syncJSON } from "@intlayer/sync-json-plugin";const config: IntlayerConfig = {  internationalization: {    locales: [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH],    defaultLocale: Locales.ENGLISH,  },  plugins: [    syncJSON({      source: ({ key, locale }) => `./public/locales/${locale}/${key}.json`,    }),  ],};export default config;

    Плагин syncJSON автоматически обернет JSON. Он будет читать и записывать JSON-файлы без изменения архитектуры контента.

    Если вы хотите, чтобы JSON сосуществовал с файлами декларации контента Intlayer (.content файлы), Intlayer будет работать следующим образом:

    plaintext
    Копировать код

    Копировать код в буфер обмена

    1. загрузит как JSON, так и файлы декларации контента и преобразует их в словарь Intlayer.2. если возникнут конфликты между JSON и файлами декларации контента, Intlayer выполнит слияние всех словарей. В зависимости от приоритета плагинов и файлов декларации контента (все настраивается).

    Если изменения внесены с помощью CLI для перевода JSON или с использованием CMS, Intlayer обновит JSON-файл с новыми переводами.

    Для получения дополнительной информации о плагине syncJSON обратитесь к документации плагина syncJSON.

    Конфигурация Git

    Исключите сгенерированные файлы из системы контроля версий:

    .gitignore
    Копировать код

    Копировать код в буфер обмена

    # Игнорировать файлы, сгенерированные Intlayer.intlayer

    Эти файлы автоматически пересоздаются во время процесса сборки и не требуют коммита в ваш репозиторий.

    Расширение VS Code

    Для улучшения опыта разработчика установите официальное расширение Intlayer для VS Code:

    Установить из магазина расширений VS Code

    i18n с помощью next-intl
    Автоматизировать react-i18next
    Alt+→

    На этой странице

      Обсуждения анонимны и регулярно просматриваются для решения распространённых проблем. Не стесняйтесь делиться идеями функций, отзывами о документации или чем-либо, связанным с Intlayer, мы используем эту информацию для формирования нашей дорожной карты и улучшения продукта.

      npm install intlayer @intlayer/sync-json-plugin --save-devnpx intlayer init
      import { Locales, type IntlayerConfig } from "intlayer";import { syncJSON } from "@intlayer/sync-json-plugin";const config: IntlayerConfig = {  internationalization: {    locales: [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH],    defaultLocale: Locales.ENGLISH,  },  plugins: [    syncJSON({      source: ({ key, locale }) => `./public/locales/${locale}/${key}.json`,    }),  ],};export default config;
      1. загрузит как JSON, так и файлы декларации контента и преобразует их в словарь Intlayer.2. если возникнут конфликты между JSON и файлами декларации контента, Intlayer выполнит слияние всех словарей. В зависимости от приоритета плагинов и файлов декларации контента (все настраивается).
      # Игнорировать файлы, сгенерированные Intlayer.intlayer