Niepoprawny lokalizator pobrany z URL
Opis problemu
Podczas próby uzyskania parametru locale z URL możesz napotkać problem, gdzie wartość locale jest niepoprawna:
const { locale } = await params;console.log(locale); // zwraca "about" zamiast oczekiwanego lokalizatoraRozwiązanie
1. Sprawdź strukturę plików
Upewnij się, że ścieżka routera aplikacji Next.js ma następującą strukturę:
src/app/[locale]/about/page.tsx2. Sprawdź konfigurację middleware
Problem często występuje, gdy middleware nie jest obecny lub nie jest wywoływany. Plik middleware powinien znajdować się w lokalizacji:
src/middleware.tsTen middleware odpowiada za przepisywanie tras, gdy prefixDefault jest ustawione na false. Na przykład, przepisuje /en/about na /about.
3. Wzorce URL w zależności od konfiguracji
Domyślna konfiguracja (prefixDefault: false, noPrefix: false)
- Angielski: /about
- Francuski: /fr/about
- Hiszpański: /es/about
Z prefixDefault: true
- Angielski: /en/about
- Francuski: /fr/about
- Hiszpański: /es/about
Z noPrefix: true
- Angielski: /about
- Francuski: /about
- Hiszpański: /about
Aby uzyskać więcej informacji na temat tych opcji konfiguracji, zobacz Dokumentację Konfiguracji.