إنشاء:2026-01-22آخر تحديث:2026-01-22

    الوثائق: دالة getCanonicalPath في intlayer

    الوصف

    تقوم الدالة getCanonicalPath بتحويل مسار URL مموّلد حسب اللغة (مثال: /a-propos) إلى مسار التطبيق القانوني الداخلي المقابل (مثال: /about). وهذا أمر أساسي للـrouters لمطابقة المسار الداخلي الصحيح بغض النظر عن لغة عنوان URL.

    الميزات الرئيسية:

    • تدعم معلمات المسارات الديناميكية باستخدام صيغة [param].
    • تطابق المسارات المموّلة حسب اللغة مع قواعد إعادة الكتابة المخصصة المعرفة في إعداداتك.
    • تعيد المسار الأصلي إذا لم يتم العثور على قاعدة إعادة كتابة مطابقة.

    توقيع الدالة

    getCanonicalPath(
      localizedPath: string,         // مطلوب
      locale: Locales,               // مطلوب
      rewriteRules?: RoutingConfig['rewrite'] // اختياري
    ): string

    المعلمات

    المعلمات المطلوبة

    • localizedPath: string

      • الوصف: المسار المحلي كما يظهر في المتصفح (على سبيل المثال، /a-propos).
      • النوع: string
      • مطلوب: نعم
    • locale: Locales

      • الوصف: اللوكال المستخدم للمسار الجاري حله.
      • النوع: Locales
      • مطلوب: نعم

    المعلمات الاختيارية

    • rewriteRules?: RoutingConfig['rewrite']
      • الوصف: كائن يعرّف قواعد إعادة كتابة مخصصة. إذا لم يتم تزويده، فإنه يأخذ القيمة الافتراضية من الخاصية routing.rewrite في تكوين مشروعك.
      • النوع: RoutingConfig['rewrite']
      • الافتراضي: configuration.routing.rewrite

    القيمة المرجعة

    • النوع: string
    • الوصف: المسار الرسمي الداخلي.

    مثال على الاستخدام

    الاستخدام الأساسي (مع التكوين)

    إذا كنت قد قمت بتكوين قواعد إعادة كتابة مخصصة في الملف intlayer.config.ts:

    import { getCanonicalPath, Locales } from "intlayer";
    
    // التكوين: { '/about': { en: '/about', fr: '/a-propos' } }
    getCanonicalPath("/a-propos", Locales.FRENCH);
    // المخرجات: "/about"
    
    getCanonicalPath("/about", Locales.ENGLISH);
    // المخرجات: "/about"

    الاستخدام مع المسارات الديناميكية

    import { getCanonicalPath, Locales } from "intlayer";
    
    // التكوين: { '/product/[id]': { en: '/product/[id]', fr: '/produit/[id]' } }
    getCanonicalPath("/produit/123", Locales.FRENCH);
    // المخرجات: "/product/123"

    قواعد إعادة الكتابة اليدوية

    You can also pass manual rewrite rules to the function:

    import { getCanonicalPath, Locales } from "intlayer";
    
    const manualRules = {
      "/contact": {
        en: "/contact-us",
        fr: "/contactez-nous",
      },
    };
    
    getCanonicalPath("/contactez-nous", Locales.FRENCH, manualRules);
    // الناتج: "/contact"

    الدوال ذات الصلة

    • getLocalizedPath: يحوّل مسارًا canonical إلى ما يعادله محليًا.
    • getLocalizedUrl: ينشئ URL مُعربًا بالكامل (بما في ذلك البروتوكول والمضيف وبادئة اللغة).