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