تم استرجاع لغة غير صحيحة من عنوان URL
وصف المشكلة
عند محاولة الوصول إلى معامل اللغة من عنوان URL، قد تواجه مشكلة حيث تكون قيمة اللغة غير صحيحة:
const { locale } = await params;console.log(locale); // يعيد "about" بدلاً من اللغة المتوقعةالحل
1. تحقق من هيكل الملفات
تأكد من أن مسار موجه تطبيق Next.js الخاص بك يتبع هذا الهيكل:
src/app/[locale]/about/page.tsx2. تحقق من إعدادات الوسيط (Middleware)
تحدث المشكلة غالبًا عندما لا يكون ملف الوسيط موجودًا أو لم يتم تفعيله. يجب أن يكون ملف الوسيط موجودًا في:
src/middleware.tsهذا الوسيط مسؤول عن إعادة كتابة المسارات عندما تكون قيمة 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
لمزيد من التفاصيل حول خيارات التهيئة هذه، راجع توثيق التهيئة.