Неверная локаль, полученная из URL
Описание проблемы
При попытке получить параметр локали из URL вы можете столкнуться с проблемой, когда значение локали неверно:
const { locale } = await params;console.log(locale); // возвращает "about" вместо ожидаемой локалиРешение
1. Проверьте структуру файлов
Убедитесь, что путь маршрутизатора вашего приложения Next.js соответствует следующей структуре:
src/app/[locale]/about/page.tsx2. Проверьте конфигурацию 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
Для получения дополнительной информации об этих параметрах конфигурации смотрите Документацию по конфигурации.