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