تمت ترجمة محتوى هذه الصفحة باستخدام الذكاء الاصطناعي.

    اعرض آخر نسخة المحتوى الأصلي باللغة الإنكليزية

    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";// تكوين Intlayerconst config: IntlayerConfig = {  internationalization: {    locales: [Locales.ENGLISH], // اللغات المدعومة  },  content: {    typesDir: "content/types", // دليل أنواع المحتوى  },  middleware: {    noPrefix: false, // عدم استخدام بادئة  },};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. يتم استخدام رمز وصول للمصادقة مع المستخدم المرتبط بالمشروع. للحصول على رمز وصول، قم بزيارة /dashboard/project وقم بإنشاء حساب.
      • مثال: true
      • ملاحظة: مهم: يجب الحفاظ على سرية clientId و clientSecret وعدم مشاركتهما علنًا. يرجى التأكد من الاحتفاظ بهما في مكان آمن، مثل متغيرات البيئة.
    • clientSecret:

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

      • النوع: 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
      • القيمة الافتراضية: true
      • الوصف: ما إذا كان يجب تضمين اللغة الافتراضية في عنوان URL.
      • مثال: false
      • ملاحظة: إذا كانت القيمة false، فلن تحتوي عناوين URL الخاصة باللغة الافتراضية على بادئة اللغة.
    • basePath:

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

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

      • النوع: boolean
      • القيمة الافتراضية: false
      • الوصف: ما إذا كان يجب حذف بادئة اللغة من عناوين URL.
      • مثال: true
      • ملاحظة: إذا كانت القيمة true، فلن تحتوي عناوين URL على معلومات اللغة.

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

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

    الخصائص

    • 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']
      • الوصف: مسار الدليل حيث يتم تخزين المحتوى.
    • 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
      • القيمة الافتراضية: لا شيء
      • الوصف: يوفر سياقًا إضافيًا حول تطبيقك لنموذج الذكاء الاصطناعي، مما يساعده على توليد ترجمات أكثر دقة وملاءمة للسياق. يمكن أن يشمل ذلك معلومات حول مجال تطبيقك، الجمهور المستهدف، النبرة، أو المصطلحات الخاصة.

    إذا كان لديك فكرة لتحسين هذه الوثيقة، فلا تتردد في المساهمة من خلال تقديم طلب سحب على GitHub.

    رابط GitHub للتوثيق