استخدم مساعدك المفضل للملخص واستخدم هذه الصفحة والموفر AI الذي تريده
تاريخ الإصدارات
- "تهيئة التوثيق"v9.4.024/8/2026
تمت ترجمة محتوى هذه الصفحة باستخدام الذكاء الاصطناعي.
اعرض آخر نسخة المحتوى الأصلي باللغة الإنكليزيةإذا كان لديك فكرة لتحسين هذه الوثيقة، فلا تتردد في المساهمة من خلال تقديم طلب سحب على GitHub.
رابط GitHub للتوثيقنسخ الـ Markdown من المستند إلى الحافظة
توثيق مكوّن intlayer لـ Elysia
يقوم المكوّن intlayer لـ Elysia باكتشاف الـ locale الخاص بالمستخدم ويحقن كائن intlayer في سياق المسار (route context). كما يتيح استخدام دوال الترجمة العامة ضمن سياق الطلب.
الاستخدام
نسخ الكود إلى الحافظة
نفس الدوال المساعدة متاحة كصادرات مستقلة، بحيث يمكنك استدعاؤها دون تفكيك سياق المسار:
نسخ الكود إلى الحافظة
الوصف
يقوم المكوّن الإضافي بالمهام التالية:
- كشف الـ locale: يقرأ الـ locale الذي حدده العميل صراحةً من التخزين (كوكي، هيدر)، ثم يعود إلى الـ locale المتفاوض عليه من هيدر
Accept-Language. - الحقن في السياق: يضيف خاصية
intlayerإلى سياق المسار في Elysia، تحتوي على:locale: الـ locale المستخدم لهذا الطلب، مع أولويةlocale_storageعلىlocale_detected.locale_storage: الـ locale الذي طلبه العميل صراحةً عبر كوكي أو هيدر.locale_detected: الـ locale المتفاوض عليه من رؤوس الطلب.defaultLocale: الـ locale المُعد كخيار احتياطي فيintlayer.config.ts.t: دالة ترجمة.getIntlayer: دالة لاسترجاع القواميس عبر المفتاح.getDictionary: دالة لمعالجة كائنات القواميس.
- إدارة السياق: يستخدم
AsyncLocalStorageلإدارة سياق غير متزامن، مما يسمح لدوال Intlayer العامة (t،getIntlayer،getDictionary) بالوصول إلى الـ locale الخاص بكل طلب دون تمرير كائن السياق.
على عكس مكوّنات Intlayer المبنية على Node، يعتمدelysia-intlayerعلىAsyncLocalStorageبدلًا منcls-hooked، لأنcls-hookedيعتمد علىasync_hooks.createHookالذي لا يطبّقه Bun.
يتم تحرير سياق الطلب بمجرد تعيين الاستجابة، بحيث لا تُحلّ الدوال المساعدة المستقلة أبدًا مقابل طلب انتهى بالفعل. وعند استدعائها خارج طلب يعالجه المكوّن، تعود إلى الـ locale الافتراضي المُعد.
الإعداد
يقرأ المكوّن ملف intlayer.config.ts الخاص بك. يمكنك تخصيص الكوكي والهيدر المستخدمين لكشف الـ locale:
نسخ الكود إلى الحافظة
import { Locales, type IntlayerConfig } from "intlayer";
const config: IntlayerConfig = {
internationalization: {
locales: [Locales.ENGLISH, Locales.FRENCH],
defaultLocale: Locales.ENGLISH,
},
routing: {
storage: [
{ type: "header", name: "my-locale-header" },
{ type: "cookie", name: "my-locale-cookie" },
],
},
};
export default config;
لمزيد من المعلومات حول الإعداد، تفضّل بزيارة توثيق الإعداد.
