تلقي إشعارات حول الإصدارات القادمة من Intlayer
    إنشاء:2024-08-13آخر تحديث:2025-06-29

    وثائق تكوين Intlayer

    نظرة عامة

    تسمح ملفات تكوين Intlayer بتخصيص جوانب مختلفة من الإضافة، مثل التدويل، والوسيط، ومعالجة المحتوى. يوفر هذا المستند وصفًا تفصيليًا لكل خاصية في التكوين.


    دعم ملفات التكوين

    يدعم Intlayer تنسيقات ملفات التكوين JSON، JS، MJS، و TS:

    • intlayer.config.ts
    • intlayer.config.js
    • intlayer.config.json
    • intlayer.config.cjs
    • intlayer.config.mjs
    • .intlayerrc

    مثال على ملف التكوين

    intlayer.config.ts
    import { Locales, type IntlayerConfig } from "intlayer";const config: IntlayerConfig = {  internationalization: {    locales: [Locales.ENGLISH],  },  content: {    contentDir: ["src", "../ui-library"],  },  middleware: {    noPrefix: false,  },  editor: {    applicationURL: "https://example.com",  },  ai: {    apiKey: process.env.OPENAI_API_KEY,    applicationContext: "This is a test application",  },  build: {    importMode: "dynamic",  },};export default config;

    مرجع التكوين

    تصف الأقسام التالية إعدادات التكوين المختلفة المتاحة لـ Intlayer.


    تكوين التدويل

    يحدد الإعدادات المتعلقة بالتدويل، بما في ذلك اللغات المتاحة واللغة الافتراضية للتطبيق.

    الخصائص

    • locales:

      • النوع: string[]
      • الافتراضي: ['en']
      • الوصف: قائمة اللغات المدعومة في التطبيق.
      • مثال: ['en', 'fr', 'es']
    • requiredLocales:
      • النوع: string[]
      • الافتراضي: []
      • الوصف: قائمة اللغات المطلوبة في التطبيق.
      • مثال: []
      • ملاحظة: إذا كانت فارغة، فإن جميع اللغات مطلوبة في وضع strict.
      • ملاحظة: تأكد من أن اللغات المطلوبة محددة أيضًا في حقل locales.
    • strictMode:

      • النوع: string
      • الافتراضي: inclusive
      • الوصف: ضمان تنفيذ قوي للمحتوى الدولي باستخدام TypeScript.
      • ملاحظة: إذا تم تعيينها إلى "strict"، فإن دالة الترجمة t ستتطلب تعريف كل اللغات المعلنة. إذا كانت لغة واحدة مفقودة، أو إذا لم يتم الإعلان عن لغة في التكوين الخاص بك، فسيتم إلقاء خطأ.
      • ملاحظة: إذا تم تعيينها إلى "inclusive"، فإن دالة الترجمة t ستتطلب تعريف كل اللغات المعلنة. إذا كانت لغة واحدة مفقودة، فسيتم إلقاء تحذير. ولكن سيتم قبول إذا لم يتم الإعلان عن لغة في التكوين الخاص بك، ولكنها موجودة.
      • ملاحظة: إذا تم تعيينها إلى "loose"، فإن دالة الترجمة t ستقبل أي لغة موجودة.
    • defaultLocale:

      • النوع: string
      • الافتراضي: 'en'
      • الوصف: اللغة الافتراضية المستخدمة كخيار احتياطي إذا لم يتم العثور على اللغة المطلوبة.
      • مثال: 'en'
      • ملاحظة: يُستخدم هذا لتحديد اللغة عندما لا يتم تحديد أي لغة في عنوان URL أو الكوكيز أو الرأس.

    تكوين المحرر

    يحدد الإعدادات المتعلقة بالمحرر المدمج، بما في ذلك منفذ الخادم وحالة التفعيل.

    الخصائص

    • applicationURL:

      • النوع: string
      • الافتراضي: http://localhost:3000
      • الوصف: عنوان URL للتطبيق. يُستخدم لتقييد أصل المحرر لأسباب أمنية.
      • مثال:
        • 'http://localhost:3000'
        • 'https://example.com'
        • process.env.INTLAYER_EDITOR_URL
      • ملاحظة: عنوان URL للتطبيق. يُستخدم لتقييد أصل المحرر لأسباب أمنية. إذا تم تعيينه إلى '*'، فإن المحرر يكون متاحًا من أي أصل.
    • port:

      • النوع: number
      • الافتراضي: 8000
      • الوصف: المنفذ المستخدم بواسطة خادم المحرر المرئي.
    • editorURL:

      • النوع: string
      • الافتراضي: 'http://localhost:8000'
      • الوصف: عنوان URL لخادم المحرر. يُستخدم لتقييد أصل المحرر لأسباب أمنية.
        • 'http://localhost:3000'
        • 'https://example.com'
        • process.env.INTLAYER_EDITOR_URL
      • ملاحظة: عنوان URL لخادم المحرر للوصول إليه من التطبيق. يُستخدم لتقييد الأصول التي يمكنها التفاعل مع التطبيق لأسباب أمنية. إذا تم تعيينه إلى '*'، فإن المحرر يكون متاحًا من أي أصل. يجب تعيينه إذا تم تغيير المنفذ، أو إذا كان المحرر مستضافًا على نطاق مختلف.
    • cmsURL:

      • النوع: string
      • الافتراضي: 'https://intlayer.org'
      • الوصف: عنوان URL لنظام إدارة المحتوى Intlayer.
      • مثال: 'https://intlayer.org'
      • ملاحظة: عنوان URL لنظام إدارة المحتوى Intlayer.
    • backendURL:

      • النوع: string
      • الافتراضي: https://back.intlayer.org
      • الوصف: عنوان URL لخادم الخلفية.
      • مثال: http://localhost:4000
    • enabled:

      • النوع: boolean
      • الافتراضي: true
      • الوصف: يشير إلى ما إذا كان التطبيق يتفاعل مع المحرر المرئي.
      • مثال: process.env.NODE_ENV !== 'production'
      • ملاحظة: إذا كانت القيمة true، سيتمكن المحرر من التفاعل مع التطبيق. إذا كانت القيمة false، لن يتمكن المحرر من التفاعل مع التطبيق. في أي حال، يمكن تمكين المحرر فقط بواسطة المحرر المرئي. تعطيل المحرر لبيئات معينة هو وسيلة لتعزيز الأمان.
    • clientId:

      • النوع: string | undefined
      • الافتراضي: undefined
      • الوصف: clientId و clientSecret يسمحان لحزم intlayer بالمصادقة مع الخادم الخلفي باستخدام مصادقة oAuth2. يتم استخدام رمز وصول للمصادقة على المستخدم المرتبط بالمشروع. للحصول على رمز وصول، قم بزيارة https://intlayer.org/dashboard/project وأنشئ حسابًا.
      • مثال: true
      • ملاحظة: مهم: يجب الحفاظ على سرية clientId و clientSecret وعدم مشاركتهما علنًا. يرجى التأكد من الاحتفاظ بهما في مكان آمن، مثل متغيرات البيئة.
    • clientSecret:

      • النوع: string | undefined
      • الافتراضي: undefined
      • الوصف: يسمح كل من clientId و clientSecret لحزم intlayer بالمصادقة مع الخادم الخلفي باستخدام مصادقة oAuth2. يتم استخدام رمز وصول (access token) للمصادقة على المستخدم المرتبط بالمشروع. للحصول على رمز وصول، انتقل إلى https://intlayer.org/dashboard/project وأنشئ حسابًا.
      • مثال: true
      • ملاحظة: مهم: يجب الحفاظ على سرية clientId و clientSecret وعدم مشاركتهما علنًا. يرجى التأكد من الاحتفاظ بهما في مكان آمن، مثل متغيرات البيئة.
    • liveSync:

      • النوع: boolean
      • الافتراضي: false
      • الوصف: يشير إلى ما إذا كان يجب على التطبيق إعادة تحميل تكوينات اللغة تلقائيًا عند اكتشاف تغيير.
      • مثال: true
      • ملاحظة: على سبيل المثال، عندما يتم إضافة قاموس جديد أو تحديثه، سيقوم التطبيق بتحديث المحتوى المعروض في الصفحة.
      • ملاحظة: نظرًا لأن إعادة التحميل الحي تحتاج إلى اتصال مستمر بالخادم، فهي متاحة فقط لعملاء خطة enterprise.
    • dictionaryPriorityStrategy:

      • النوع: string
      • الافتراضي: 'local_first'
      • الوصف: الاستراتيجية لتحديد أولوية القواميس في حالة وجود قواميس محلية وبعيدة. إذا تم تعيينها إلى 'distant_first'، سيعطي التطبيق الأولوية للقواميس البعيدة على القواميس المحلية. إذا تم تعيينها إلى 'local_first'، سيعطي التطبيق الأولوية للقواميس المحلية على القواميس البعيدة.
      • مثال: 'distant_first'

    تكوين الوسيط

    إعدادات الوسيط

    الإعدادات التي تتحكم في سلوك الوسيط، بما في ذلك كيفية تعامل التطبيق مع الكوكيز، والرؤوس، وبادئات عناوين URL لإدارة اللغة.

    الخصائص

    • headerName:

      • النوع: string
      • الافتراضي: 'x-intlayer-locale'
      • الوصف: اسم رأس HTTP المستخدم لتحديد اللغة.
      • مثال: 'x-custom-locale'
      • ملاحظة: هذا مفيد لتحديد اللغة بناءً على API.
    • cookieName:

      • النوع: string
      • الافتراضي: 'intlayer-locale'
      • الوصف: اسم الكوكي المستخدم لتخزين اللغة.
      • مثال: 'custom-locale'
      • ملاحظة: يُستخدم للحفاظ على اللغة عبر الجلسات.
    • prefixDefault:

      • النوع: boolean
      • الافتراضي: false
      • الوصف: ما إذا كان يجب تضمين اللغة الافتراضية في عنوان URL.
      • مثال: true
      • ملاحظة:
        • إذا كانت القيمة true و defaultLocale = 'en': path = /en/dashboard أو /fr/dashboard
        • إذا كانت القيمة false و defaultLocale = 'en': path = /dashboard أو /fr/dashboard
    • basePath:

      • النوع: string
      • القيمة الافتراضية: ''
      • الوصف: المسار الأساسي لعناوين URL الخاصة بالتطبيق.
      • مثال: '/my-app'
      • ملاحظة:
        • إذا كان التطبيق مستضافًا على https://example.com/my-app
        • المسار الأساسي هو '/my-app'
        • سيكون عنوان URL https://example.com/my-app/en
        • إذا لم يتم تعيين المسار الأساسي، سيكون عنوان URL https://example.com/en
    • serverSetCookie:

      • النوع: string
      • القيمة الافتراضية: 'always'
      • الوصف: قاعدة تعيين الكوكي الخاص باللغة على الخادم.
      • الخيارات: 'always', 'never'
      • مثال: 'never'
      • ملاحظة: يتحكم في ما إذا كان يتم تعيين الكوكي الخاص باللغة مع كل طلب أو لا.
    • noPrefix:

      • النوع: boolean
      • القيمة الافتراضية: false
      • الوصف: ما إذا كان يجب حذف بادئة اللغة من عناوين URL.
      • مثال: true
      • ملاحظة:
        • إذا كانت القيمة true: لا توجد بادئة في عنوان URL
        • إذا كانت القيمة false: توجد بادئة في عنوان URL
        • مثال مع basePath = '/my-app':
          • إذا كانت noPrefix = false: سيكون عنوان URL https://example.com/my-app/en
          • إذا كانت noPrefix = true: سيكون عنوان URL https://example.com
    • detectLocaleOnPrefetchNoPrefix:

      • النوع: boolean
      • القيمة الافتراضية: false
      • الوصف: يتحكم في ما إذا كان اكتشاف اللغة يحدث أثناء طلبات التحميل المسبق لـ Next.js.
      • مثال: true
      • ملاحظة: يؤثر هذا الإعداد على كيفية تعامل Next.js مع التحميل المسبق للغة:
        • سيناريو المثال:
          • لغة متصفح المستخدم هي 'fr'
          • الصفحة الحالية هي /fr/about
          • الرابط يحمل مسبقًا /about
        • مع detectLocaleOnPrefetchNoPrefix: true:
          • التحميل المسبق يكتشف اللغة 'fr' من المتصفح
          • يعيد توجيه التحميل المسبق إلى /fr/about
        • مع detectLocaleOnPrefetchNoPrefix: false (الافتراضي):
          • التحميل المسبق يستخدم اللغة الافتراضية
          • يعيد توجيه التحميل المسبق إلى /en/about (بافتراض أن 'en' هي الافتراضية)
        • متى تستخدم true:
          • تطبيقك يستخدم روابط داخلية غير محلية (مثل <a href="/about">)
          • تريد سلوك اكتشاف لغة متسق بين الطلبات العادية وطلبات التحميل المسبق
        • متى تستخدم false (الافتراضي):
          • تطبيقك يستخدم روابط ببادئة لغة (مثل <a href="/fr/about">)
          • تريد تحسين أداء التحميل المسبق
          • تريد تجنب حلقات إعادة التوجيه المحتملة

    إعدادات المحتوى

    الإعدادات المتعلقة بمعالجة المحتوى داخل التطبيق، بما في ذلك أسماء الدلائل، امتدادات الملفات، والتكوينات المشتقة.

    الخصائص

    • watch:

      • النوع: boolean
      • القيمة الافتراضية: process.env.NODE_ENV === 'development'
      • الوصف: يشير إلى ما إذا كان Intlayer يجب أن يراقب التغييرات في ملفات إعلان المحتوى في التطبيق لإعادة بناء القواميس ذات الصلة.
    • fileExtensions:

      • النوع: string[]
      • القيمة الافتراضية: ['.content.ts', '.content.js', '.content.cjs', '.content.mjs', '.content.json', '.content.tsx', '.content.jsx']
      • الوصف: امتدادات الملفات التي يجب البحث عنها عند بناء القواميس.
      • مثال: ['.data.ts', '.data.js', '.data.json']
      • ملاحظة: تخصيص امتدادات الملفات يمكن أن يساعد في تجنب التعارضات.
    • baseDir:

      • النوع: string
      • القيمة الافتراضية: process.cwd()
      • الوصف: الدليل الأساسي للمشروع.
      • مثال: '/path/to/project'
      • ملاحظة: يُستخدم هذا لحل جميع الأدلة المتعلقة بـ Intlayer.
    • dictionaryOutput:

      • النوع: string[]
      • القيمة الافتراضية: ['intlayer']
      • الوصف: نوع إخراج القاموس المستخدم، مثل 'intlayer' أو 'i18next'.
    • contentDir:

      • النوع: string[]
      • القيمة الافتراضية: ['src']
      • مثال: ['src', '../../ui-library', require.resolve("@my-package/content")]
      • الوصف: مسار الدليل حيث يتم تخزين المحتوى.
    • dictionariesDir:

      • النوع: string
      • القيمة الافتراضية: '.intlayer/dictionaries'
      • الوصف: مسار الدليل لتخزين النتائج الوسيطة أو النهائية.
    • moduleAugmentationDir:

      • النوع: string
      • القيمة الافتراضية: '.intlayer/types'
      • الوصف: دليل لتوسيع الوحدات، مما يسمح بتحسين اقتراحات IDE وفحص الأنواع.
      • مثال: 'intlayer-types'
      • ملاحظة: تأكد من تضمين هذا في tsconfig.json.
    • unmergedDictionariesDir:

      • النوع: string
      • القيمة الافتراضية: '.intlayer/unmerged_dictionary'
      • الوصف: الدليل لتخزين القواميس غير المدمجة.
      • مثال: 'translations'
    • dictionariesDir:

      • النوع: string
      • القيمة الافتراضية: '.intlayer/dictionary'
      • الوصف: الدليل لتخزين قواميس التوطين.
      • مثال: 'translations'
    • i18nextResourcesDir:

      • النوع: string
      • القيمة الافتراضية: 'i18next_dictionary'
      • الوصف: الدليل لتخزين قواميس i18n.
      • مثال: 'translations'
      • ملاحظة: تأكد من تكوين هذا الدليل لنوع إخراج i18next.
    • typesDir:

      • النوع: string
      • القيمة الافتراضية: 'types'
      • الوصف: الدليل لتخزين أنواع القواميس.
      • مثال: 'intlayer-types'
    • mainDir:

      • النوع: string
      • القيمة الافتراضية: 'main'
      • الوصف: الدليل حيث يتم تخزين ملفات التطبيق الرئيسية.
      • مثال: 'intlayer-main'
    • excludedPath:

      • النوع: string[]
      • القيمة الافتراضية: ['node_modules']
      • الوصف: الأدلة المستثناة من البحث عن المحتوى.
      • ملاحظة: هذا الإعداد لم يُستخدم بعد، ولكنه مخطط للتنفيذ في المستقبل.

    إعدادات السجل

    الإعدادات التي تتحكم في السجل، بما في ذلك البادئة المستخدمة.

    الخصائص

    • mode:

      • النوع: string
      • القيمة الافتراضية: default
      • الوصف: يشير إلى وضع السجل.
      • الخيارات: default, verbose, disabled
      • مثال: default
      • ملاحظة: وضع السجل. وضع verbose سيسجل المزيد من المعلومات، ولكنه يمكن استخدامه لأغراض التصحيح. وضع disabled سيعطل السجل.
    • prefix:

      • النوع: string
      • القيمة الافتراضية: '[intlayer] '
      • الوصف: البادئة الخاصة بالسجل.
      • مثال: '[my custom prefix] '
      • ملاحظة: البادئة الخاصة بالسجل.

    إعدادات الذكاء الاصطناعي

    الإعدادات التي تتحكم في ميزات الذكاء الاصطناعي لـ Intlayer، بما في ذلك المزود، النموذج، ومفتاح API. هذا التكوين اختياري إذا كنت مسجلاً في لوحة تحكم Intlayer باستخدام مفتاح وصول. سيقوم Intlayer تلقائيًا بإدارة الحلول الأكثر كفاءة وفعالية من حيث التكلفة لاحتياجاتك. استخدام الخيارات الافتراضية يضمن صيانة أفضل على المدى الطويل حيث يقوم Intlayer بتحديث نفسه باستمرار لاستخدام النماذج الأكثر صلة.

    إذا كنت تفضل استخدام مفتاح API الخاص بك أو نموذج معين، يمكنك تعريف إعدادات الذكاء الاصطناعي المخصصة الخاصة بك. سيتم استخدام هذا التكوين عالميًا عبر بيئة Intlayer الخاصة بك. ستستخدم أوامر CLI هذه الإعدادات كإعدادات افتراضية للأوامر (مثل fill) بالإضافة إلى SDK، المحرر المرئي، وCMS. يمكنك تجاوز هذه القيم الافتراضية لحالات استخدام محددة باستخدام معلمات الأوامر. يدعم Intlayer عدة مزودين للذكاء الاصطناعي لتعزيز المرونة والاختيار. المزودون المدعومون حاليًا هم:

    • OpenAI (الافتراضي)
    • Anthropic Claude
    • Mistral AI
    • DeepSeek
    • Google Gemini
    • Meta Llama

    الخصائص

    • provider:

      • النوع: string
      • القيمة الافتراضية: 'openai'
      • الوصف: المزود المستخدم لميزات الذكاء الاصطناعي في Intlayer.
      • الخيارات: 'openai'، 'anthropic'، 'mistral'، 'deepseek'، 'gemini'
      • مثال: 'anthropic'
      • ملاحظة: قد تتطلب المزودات المختلفة مفاتيح API مختلفة ولديها نماذج تسعير مختلفة.
    • model:

      • النوع: string
      • القيمة الافتراضية: لا شيء
      • الوصف: النموذج المستخدم لميزات الذكاء الاصطناعي في Intlayer.
      • مثال: 'gpt-4o-2024-11-20'
      • ملاحظة: النموذج المحدد للاستخدام يختلف حسب المزود.
    • temperature:

      • النوع: number
      • القيمة الافتراضية: لا شيء
      • الوصف: تتحكم درجة الحرارة في عشوائية استجابات الذكاء الاصطناعي.
      • مثال: 0.1
      • ملاحظة: درجة حرارة أعلى ستجعل الذكاء الاصطناعي أكثر إبداعًا وأقل توقعًا.
    • apiKey:

      • النوع: string
      • القيمة الافتراضية: لا شيء
      • الوصف: مفتاح API الخاص بك للمزود المحدد.
      • مثال: process.env.OPENAI_API_KEY
      • ملاحظة: مهم: يجب الحفاظ على سرية مفاتيح API وعدم مشاركتها علنًا. يرجى التأكد من الاحتفاظ بها في مكان آمن، مثل متغيرات البيئة.
    • applicationContext:

      • النوع: string
      • القيمة الافتراضية: لا شيء
      • الوصف: يوفر سياقًا إضافيًا حول تطبيقك لنموذج الذكاء الاصطناعي، مما يساعده على توليد ترجمات أكثر دقة وملاءمة للسياق. يمكن أن يشمل ذلك معلومات حول مجال تطبيقك، الجمهور المستهدف، النبرة، أو المصطلحات الخاصة.

    تكوين البناء

    الإعدادات التي تتحكم في كيفية تحسين وبناء التدويل في تطبيقك.

    تنطبق خيارات البناء على إضافات @intlayer/babel و @intlayer/swc.

    في وضع التطوير، يستخدم Intlayer استيرادات ثابتة للقواميس لتبسيط تجربة التطوير.

    عند التحسين، سيقوم Intlayer باستبدال استدعاءات القواميس لتحسين التجزئة، بحيث يقوم البناء النهائي باستيراد القواميس المستخدمة فعليًا فقط.

    الخصائص

    • optimize:

      • النوع: boolean
      • القيمة الافتراضية: process.env.NODE_ENV === 'production'
      • الوصف: يتحكم في ما إذا كان يجب تحسين البناء.
      • مثال: true
      • ملاحظة: عند التمكين، سيقوم Intlayer باستبدال جميع استدعاءات القواميس لتحسين التجزئة. بهذه الطريقة سيقوم البناء النهائي باستيراد القواميس المستخدمة فقط. ستظل جميع عمليات الاستيراد كاستيرادات ثابتة لتجنب المعالجة غير المتزامنة عند تحميل القواميس.
      • ملاحظة: سيقوم Intlayer باستبدال جميع استدعاءات useIntlayer بالوضع المحدد بواسطة خيار importMode و getIntlayer بـ getDictionary.
      • ملاحظة: تعتمد هذه الخيارات على إضافات @intlayer/babel و @intlayer/swc.
      • ملاحظة: تأكد من أن جميع المفاتيح معلنة بشكل ثابت في استدعاءات useIntlayer. مثال: useIntlayer('navbar').
    • importMode:

      • النوع: 'static' | 'dynamic' | 'async'
      • القيمة الافتراضية: 'static'
      • الوصف: يتحكم في كيفية استيراد القواميس.
      • مثال: 'dynamic'
      • ملاحظة: الأوضاع المتاحة:
        • "static": يتم استيراد القواميس بشكل ثابت. يستبدل useIntlayer بـ useDictionary.
        • "dynamic": يتم استيراد القواميس ديناميكيًا باستخدام Suspense. يستبدل useIntlayer بـ useDictionaryDynamic.
        • "async": يتم استيراد القواميس ديناميكيًا بشكل غير متزامن. يستبدل useIntlayer بـ await useDictionaryAsync.
      • ملاحظة: تعتمد الاستيرادات الديناميكية على Suspense وقد تؤثر قليلاً على أداء العرض.
      • ملاحظة: إذا تم تعطيلها، سيتم تحميل جميع اللغات مرة واحدة، حتى لو لم يتم استخدامها.
      • ملاحظة: تعتمد هذه الخيارات على إضافات @intlayer/babel و @intlayer/swc.
      • ملاحظة: تأكد من أن جميع المفاتيح معلنة بشكل ثابت في استدعاءات useIntlayer. مثال: useIntlayer('navbar').
      • ملاحظة: سيتم تجاهل هذا الخيار إذا تم تعطيل optimize.
      • ملاحظة: في معظم الحالات، سيتم استخدام "dynamic" للتطبيقات React، "async" لتطبيقات Vue.js.
      • ملاحظة: لن تؤثر هذه الخيارات على الدوال getIntlayer، getDictionary، useDictionary، useDictionaryAsync و useDictionaryDynamic.
    • traversePattern:

      • النوع: string[]
      • القيمة الافتراضية: ['**/*.{js,ts,mjs,cjs,jsx,tsx,mjx,cjx}', '!**/node_modules/**']
      • الوصف: الأنماط التي تحدد الملفات التي يجب اجتيازها أثناء التحسين.
        • مثال: ['src/**/*.{ts,tsx}', '../ui-library/**/*.{ts,tsx}', '!**/node_modules/**']
      • ملاحظة: استخدم هذا لتقييد التحسين على ملفات الكود ذات الصلة وتحسين أداء البناء.
      • ملاحظة: سيتم تجاهل هذا الخيار إذا تم تعطيل optimize.
      • ملاحظة: استخدم نمط glob.

    تاريخ الوثيقة

    • 5.5.11 - 2025-06-29: إضافة أوامر docs
    تلقي إشعارات حول الإصدارات القادمة من Intlayer