توثيق إعدادات Intlayer

    نظرة عامة

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


    دعم ملف الإعدادات

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

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

    مثال على ملف الإعدادات

    typescript
    // intlayer.config.ts
    
    import { Locales, type IntlayerConfig } from "intlayer";
    
    const config: IntlayerConfig = {
      internationalization: {
        locales: [Locales.ENGLISH],
      },
      content: {
        typesDir: "content/types",
      },
      middleware: {
        noPrefix: false,
      },
    };
    
    export default config;
    
    javascript
    // intlayer.config.cjs
    
    const { Locales } = require("intlayer");
    
    /** @type {import('intlayer').IntlayerConfig} */
    const config = {
      internationalization: {
        locales: [Locales.ENGLISH],
      },
      content: {
        typesDir: "content/types",
      },
      middleware: {
        noPrefix: false,
      },
    };
    
    module.exports = config;
    
    json5
    // .intlayerrc
    
    {
      "internationalization": {
        "locales": ["en"],
      },
      "content": {
        "typesDir": "content/types",
      },
      "middleware": {
        "noPrefix": false,
      },
    }
    

    مرجع الإعدادات

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


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

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

    الخصائص

    • locales:
      • النوع: string[]
      • افتراضي: ['en']
      • الوصف: قائمة المواقع المدعومة في التطبيق.
      • مثال: ['en', 'fr', 'es']
    • strictMode:

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

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

    إعدادات المحرر

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

    الخصائص

    • backendURL:

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

      • النوع: boolean
      • افتراضي: true
      • الوصف: يشير إلى ما إذا كان المحرر نشطًا.
      • مثال: true
      • ملاحظة: يمكن تعيينه باستخدام NODE_ENV أو أي متغير بيئة مخصص آخر.
    • clientId:

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

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

    إعدادات البرمجيات الوسيطة

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

    الخصائص

    • 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'.
    • contentDirName:
      • النوع: string
      • افتراضي: 'src'
      • الوصف: اسم الدليل الذي يتم تخزين المحتوى فيه.
      • مثال: 'data', 'content', 'locales'
      • ملاحظة: إذا لم يكن في مستوى الدليل الأساسي، قم بتحديث contentDir.
    • contentDir:

      • النوع: string
      • مشتق من: 'baseDir' / 'contentDirName'
      • الوصف: مسار الدليل حيث يتم تخزين المحتوى.
    • resultDirName:
      • النوع: string
      • افتراضي: '.intlayer'
      • الوصف: اسم الدليل حيث يتم تخزين النتائج.
      • مثال: 'outputOFIntlayer'
      • ملاحظة: إذا لم يكن هذا الدليل في المستوى الأساسي، قم بتحديث resultDir.
    • resultDir:

      • النوع: string
      • مشتق من: 'baseDir' / 'resultDirName'
      • الوصف: المسار لدليل تخزين النتائج الوسيطة أو النهائية.
    • moduleAugmentationDirName:

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

      • النوع: string
      • مشتق من: 'baseDir' / 'moduleAugmentationDirName'
      • الوصف: المسار لتكبير الوحدات وتعريفات الأنواع الإضافية.
    • dictionariesDirName:
      • النوع: string
      • افتراضي: 'dictionary'
      • الوصف: دليل لتخزين القواميس.
      • مثال: 'translations'
      • ملاحظة: إذا لم يكن في مستوى دليل النتائج، قم بتحديث dictionariesDir.
    • dictionariesDir:

      • النوع: string
      • مشتق من: 'resultDir' / 'dictionariesDirName'
      • الوصف: الدليل لتخزين قواميس الموقع.
    • i18nDictionariesDirName:
      • النوع: string
      • افتراضي: 'i18n_dictionary'
      • الوصف: دليل لتخزين قواميس i18n.
      • مثال: 'translations'
      • ملاحظة: إذا لم يكن في مستوى دليل النتائج، قم بتحديث i18nDictionariesDir.
      • ملاحظة: تأكد من أن ناتج قواميس i18n يتضمن i18next لبناء القواميس لـ i18next.
    • i18nDictionariesDir:

      • النوع: string
      • مشتق من: 'resultDir' / 'i18nDictionariesDirName'
      • الوصف: الدليل لتخزين قواميس i18n.
      • ملاحظة: تأكد من تكوين هذا الدليل لنوع مخرجات i18next.
    • typeDirName:

      • النوع: string
      • افتراضي: 'types'
      • الوصف: دليل لتخزين أنواع القواميس.
      • مثال: 'intlayer-types'
      • ملاحظة: إذا لم يكن في مستوى دليل النتائج، قم بتحديث typesDir.
    • typesDir:

      • النوع: string
      • مشتق من: 'resultDir' / 'typeDirName'
      • الوصف: الدليل لتخزين أنواع القواميس.
    • mainDirName:
      • النوع: string
      • افتراضي: 'main'
      • الوصف: دليل لتخزين الملفات الرئيسية.
      • مثال: 'intlayer-main'
      • ملاحظة: إذا لم يكن في مستوى دليل النتائج، قم بتحديث mainDir.
    • mainDir:
      • النوع: string
      • مشتق من: 'resultDir' / 'mainDirName'
      • الوصف: الدليل حيث يتم تخزين ملفات التطبيق الرئيسية.
    • excludedPath:
      • النوع: string[]
      • افتراضي: ['node_modules']
      • الوصف: الأدلة المستبعدة من البحث عن المحتوى.
      • ملاحظة: هذا الإعداد لم يُستخدم بعد، ولكن مُخطط له للتنفيذ في المستقبل.

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

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