إنشاء:2026-09-19آخر تحديث:2026-09-19
استخدم هذه الصفحة والموفر AI الذي تريدهChatGPTClaudeDeepSeekGoogle AI modeGeminiPerplexityMistralGrok
استخدم مساعدك المفضل للملخص واستخدم هذه الصفحة والموفر AI الذي تريده
تاريخ الإصدارات
- "توثيق أولي"v9.5.519/9/2026
تمت ترجمة محتوى هذه الصفحة باستخدام الذكاء الاصطناعي.
اعرض آخر نسخة المحتوى الأصلي باللغة الإنكليزيةتعديل هذه الوثيقة
إذا كان لديك فكرة لتحسين هذه الوثيقة، فلا تتردد في المساهمة من خلال تقديم طلب سحب على GitHub.
رابط GitHub للتوثيقنسخ
نسخ الـ Markdown من المستند إلى الحافظة
توثيق برمجية Astro الوسيطة onRequest
تقوم البرمجية الوسيطة onRequest من astro-intlayer/middleware بتحديد لغة كل طلب HTTP وارد وملء Astro.locals.intlayer.
عند تسجيل تكامل intlayer() في astro.config.mjs، يتم حقن هذه البرمجية الوسيطة تلقائيًا. تحتاج فقط إلى استيرادها مباشرة إذا كنت تقوم بتركيب برمجيات Astro الوسيطة يدويًا باستخدام sequence(...).
الاستخدام
src/middleware.ts
نسخ الكود
نسخ الكود إلى الحافظة
الوصف
تقوم البرمجية الوسيطة بالإجراءات التالية:
- اكتشاف اللغة:
- URL: يحلل بادئة مسار URL أو معلمة البحث
?locale=(ما لم يتم تعيينrouting.modeعلىno-prefix). - ملفات تعريف الارتباط / الترويسات: يتحقق من ملفات تعريف الارتباط المحفوظة للغة أو قيم الترويسات المخصصة.
- Accept-Language: يعتمد على تفاوض اللغة المفضلة للمتصفح كحل احتياطي.
- بالنسبة للصفحات المعروضة مسبقًا (
context.isPrerendered)، يتم استخراج اللغة بدقة من عنوان URL لمنع تحذيرات بناء Astro.
- URL: يحلل بادئة مسار URL أو معلمة البحث
- ملء السياق: يملأ
Astro.locals.intlayerبما يلي:locale: اللغة المحددة.defaultLocale: اللغة الاحتياطية الافتراضية.availableLocales: مصفوفة اللغات المكونة.
- نطاق AsyncLocalStorage: يغلف معالجة الطلب اللاحقة داخل نطاق
AsyncLocalStorage، مما يسمح لـuseIntlayer()وuseDictionary()وuseLocale()بالوصول إلى حالة الطلب دون تمرير معاملات.
نوع IntlayerLocals
ts
نسخ الكود
نسخ الكود إلى الحافظة
