Получайте уведомления о предстоящих релизах Intlayer

    Неверная локаль, полученная из URL

    Описание проблемы

    При попытке получить параметр локали из URL вы можете столкнуться с проблемой, когда значение локали неверно:

    const { locale } = await params;console.log(locale); // возвращает "about" вместо ожидаемой локали

    Решение

    1. Проверьте структуру файлов

    Убедитесь, что путь маршрутизатора вашего приложения Next.js соответствует следующей структуре:

    src/app/[locale]/about/page.tsx

    2. Проверьте конфигурацию Middleware

    Проблема часто возникает, когда middleware отсутствует или не срабатывает. Файл middleware должен находиться по адресу:

    src/middleware.ts

    Этот middleware отвечает за переписывание маршрутов, когда prefixDefault установлен в false. Например, он переписывает /en/about в /about.

    3. Шаблоны URL в зависимости от конфигурации

    Конфигурация по умолчанию (prefixDefault: false, noPrefix: false)

    • Английский: /about
    • Французский: /fr/about
    • Испанский: /es/about

    При prefixDefault: true

    • Английский: /en/about
    • Французский: /fr/about
    • Испанский: /es/about

    При noPrefix: true

    • Английский: /about
    • Французский: /about
    • Испанский: /about

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