Falsche Locale aus URL abgerufen
Problembeschreibung
Beim Versuch, den Locale-Parameter aus der URL abzurufen, kann es vorkommen, dass der Locale-Wert falsch ist:
const { locale } = await params;console.log(locale); // gibt "about" zurück anstelle der erwarteten LocaleLösung
1. Überprüfen Sie die Dateistruktur
Stellen Sie sicher, dass Ihr Next.js App-Router-Pfad dieser Struktur folgt:
src/app/[locale]/about/page.tsx2. Überprüfen Sie die Middleware-Konfiguration
Das Problem tritt häufig auf, wenn die Middleware nicht vorhanden ist oder nicht ausgelöst wird. Die Middleware-Datei sollte sich befinden unter:
src/middleware.tsDiese Middleware ist verantwortlich für das Umschreiben von Routen, wenn prefixDefault auf false gesetzt ist. Zum Beispiel schreibt sie /en/about in /about um.
3. URL-Muster basierend auf der Konfiguration
Standardkonfiguration (prefixDefault: false, noPrefix: false)
- Englisch: /about
- Französisch: /fr/about
- Spanisch: /es/about
Mit prefixDefault: true
- Englisch: /en/about
- Französisch: /fr/about
- Spanisch: /es/about
Mit noPrefix: true
- Englisch: /about
- Französisch: /about
- Spanisch: /about
src/app/[locale]/about/page.tsx
- Spanisch: `/es/about`#### Mit `noPrefix: true`- Englisch: `/about`- Französisch: `/about`- Spanisch: `/about`Für weitere Details zu diesen Konfigurationsoptionen siehe die [Konfigurationsdokumentation](/de/doc/concept/configuration).