استخدم مساعدك المفضل للملخص واستخدم هذه الصفحة والموفر AI الذي تريده
تاريخ الإصدارات
- "مدمج في intlayer()؛ بدء التوثيق"v9.0.0٢٥/٦/٢٠٢٦
تمت ترجمة محتوى هذه الصفحة باستخدام الذكاء الاصطناعي.
اعرض آخر نسخة المحتوى الأصلي باللغة الإنكليزيةIf you have an idea for improving this documentation, please feel free to contribute by submitting a pull request on GitHub.
GitHub link to the documentationCopy doc Markdown to clipboard
intlayerCompiler
intlayerCompiler هو عبارة عن إضافة لـ Vite يقوم بفحص ملفات المكونات البرمجية بحثًا عن إعلانات محتوى Intlayer المضمنة — وهو المحتوى المعرف مباشرة داخل المكون بدلاً من ملف منفصل .content.ts — ويكتبها في ملفات قاموس JSON خلال مرحلة التحويل (transform).
بدءاً من إطلاق Intlayer v9 يتم تضمينintlayerCompilerتلقائيًا داخل الإضافة الأساسيةintlayer()عندما يكون كل منcompiler.enabledهوtrueوتحديد مسار المخرجاتcompiler.outputفي إعدادات Intlayer الخاصة بك. تحتاج فقط إلى تسجيلها بشكل منفصل إذا كنت تريد التحكم الكامل في إعدادات المترجم المحددة.
الاستخدام
كجزء من intlayer() (موصى به، الإصدار 9+)
قم بتمكين المترجم (compiler) من خلال إعدادات Intlayer الخاصة بك:
نسخ الكود إلى الحافظة
// intlayer.config.tsimport { defineConfig } from "intlayer";export default defineConfig({ compiler: { enabled: true, output: "./src/dictionaries", // أين يتم كتابة القواميس المستخرجة },});ثم استخدم الإضافة القياسية بدون تسجيل إضافي:
نسخ الكود إلى الحافظة
// vite.config.tsimport { defineConfig } from "vite";import { intlayer } from "vite-intlayer";export default defineConfig({ plugins: [intlayer()],});منفصل (عند الحاجة)
نسخ الكود إلى الحافظة
// vite.config.tsimport { defineConfig } from "vite";import { intlayerCompiler } from "vite-intlayer";export default defineConfig({ plugins: [intlayerCompiler()],});الخيارات
نسخ الكود إلى الحافظة
import type { IntlayerCompilerOptions } from "vite-intlayer";افتح الجدول في نافذة منبثقة لعرض جميع محتويات البيانات بوضوح
| الخيار | النوع | الوصف |
|---|---|---|
configOptions | GetConfigurationOptions | تجاوزات إعدادات Intlayer التي يتم تمريرها إلى getConfiguration(). |
compilerConfig | Partial<CompilerConfig> | تجاوزات لقسم الإعدادات الخاص بالمترجم (مثل enabled و output و filesList). |
مثال
نسخ الكود إلى الحافظة
intlayerCompiler({ configOptions: { configFile: "./config/intlayer.config.ts" }, compilerConfig: { enabled: true, output: "./src/dictionaries" },});كيف يعمل
مرحلة التحويل (Transform phase)
لكل ملف مصدر يطابق compiler.filesList ، تقوم إضافة المترجم بـ:
- تمرير محتوى الملف عبر دالة
extractContentمن الحزمة@intlayer/babel. - استدعاء
onExtractلكل إعلان يتم العثور عليه، والذي يقوم بكتابة قاموس JSON الناتج إلىcompiler.output. - إرجاع الكود المصدري المحول مع استبدال الإعلانات المضمنة باستدعاءات قياسية مثل
useIntlayer('key')/getIntlayer('key').
أنواع الملفات المدعومة: .ts, .tsx, .js, .jsx, .vue, .svelte, .astro.
تحديث الوحدات الساخن HMR (Hot Module Replacement)
عندما يتم حفظ ملف مكون في وضع التطوير، يقوم المترجم بـ:
- الكشف عن تغيير الملف عبر خطاف
handleHotUpdateالخاص بـ Vite. - إعادة استخراج المحتوى من الملف المحدث.
- كتابة قاموس JSON المحدث.
- تحفيز إعادة تحميل الصفحة بالكامل (
server.ws.send({ type: 'full-reload' })).
يمنع مؤقت debounce بمقدار 500 مللي ثانية عملية كتابة القاموس نفسها (التي تؤدي أيضًا إلى حدث تغيير الملف) من التسبب في حلقة لا نهائية لإعادة الاستخراج.
إزالة التكرار (Deduplication)
يستخدم intlayerCompiler نفس آلية إزالة التكرار createPrimaryInstanceGuard المستخدمة في الإضافات المدمجة الأخرى. عندما يتواجد كل من intlayer() (الذي يتضمن المترجم) واستدعاء يدوي لـ intlayerCompiler() ، يتم تشغيل المثيل الأول المسجل فقط — ولا يتم كتابة أي قواميس مرتين.