استخدم مساعدك المفضل للملخص واستخدم هذه الصفحة والموفر AI الذي تريده
تاريخ الإصدارات
- "الوثائق الأولية"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
الوثائق: دالة comparePaths في intlayer
الوصف
تقوم دالة comparePaths بمقارنة عنواني URL أو مسارين للتحقق من تطابقهما مع تجاهل جزء اللغة (locale)، البروتوكول/المضيف، سلسلة الاستعلام (query string)، التجزئة (hash)، والشرطات المائلة الختامية (trailing slashes). إنها الطريقة الموصى بها لتحديد ما إذا كان رابط التنقل يشير إلى الصفحة الحالية — على سبيل المثال لتمييز الرابط النشط — دون الحاجة إلى كتابة منطق التسوية (normalization logic) الخاص بك والذي يكون عرضة للأخطاء.
داخليًا، تعيد استخدام getPathWithoutLocale لإزالة جزء اللغة، لذلك فهي تحترم وضع التوجيه واللغات التي قمت بتكوينها.
تُصدّر الحزمة أيضًا الأداة المساعدة الأساسية normalizePath، والتي تُرجع المسار القياسي المستقل عن اللغة والمُستخدم في المقارنة.
الميزات الرئيسية:
- مقارنة مستقلة عن اللغة (
/ar/aboutيتطابق مع/about) - تعمل مع كل من عناوين URL المطلقة والمسارات النسبية
- تتجاهل سلسلة الاستعلام، التجزئة، والشرطات المائلة الختامية
- تتسامح مع غياب الشرطات المائلة البادئة والقيم الفارغة (يتم تسويتها إلى
/) - خفيفة الوزن — مبنية على
getPathWithoutLocale
توقيع الدالة
نسخ الكود إلى الحافظة
comparePaths( pathname: string, // مطلوب href: string, // مطلوب locales?: Locales[] // اختياري): booleannormalizePath( inputUrl: string, // مطلوب locales?: Locales[] // اختياري): stringالمعلمات (Parameters)
pathname: string- الوصف: سلسلة URL الأولى أو المسار الأول للمقارنة (عادةً ما يكون المسار الحالي).
- النوع:
string - مطلوب: نعم
href: string- الوصف: سلسلة URL الثانية أو المسار الثاني للمقارنة (عادةً ما يكون
hrefلرابط التنقل). - النوع:
string - مطلوب: نعم
- الوصف: سلسلة URL الثانية أو المسار الثاني للمقارنة (عادةً ما يكون
locales: Locales[]- الوصف: مصفوفة اختيارية للغات المدعومة. يتم افتراض اللغات المكوّنة في المشروع.
- النوع:
Locales[] - مطلوب: لا (اختياري)
الإرجاع (Returns)
- النوع:
boolean - الوصف:
trueعندما يتم حل كلا الإدخالين إلى نفس المسار المستقل عن اللغة، وإلاfalse.
مثال على الاستخدام
الاستخدام الأساسي
نسخ الكود إلى الحافظة
import { comparePaths } from "intlayer";
comparePaths("/ru/path", "/path"); // true
comparePaths("/ru/path/", "/path"); // true
comparePaths("/ru/path", "/path/"); // true
comparePaths("/ru/", "/"); // true
comparePaths("/ru", "/"); // true
comparePaths("ru/path", "/path"); // true
comparePaths("", "/"); // true
comparePaths("/ru", ""); // true
comparePaths("/ru/path", "/other"); // falseعناوين URL المطلقة والنسبية
نسخ الكود إلى الحافظة
import { comparePaths } from "intlayer";comparePaths("https://example.com/ru/path", "/path"); // trueتمييز رابط التنقل النشط
نسخ الكود إلى الحافظة
import { comparePaths } from "intlayer";import { useLocation } from "react-router";const NavLink = ({ href, children }) => { const { pathname } = useLocation(); const isActive = comparePaths(pathname, href); return ( <a href={href} aria-current={isActive ? "page" : undefined}> {children} </a> );};normalizePath
تقوم normalizePath بإرجاع المسار القياسي والمستقل عن اللغة الذي تستخدمه comparePaths. تقوم بإزالة جزء اللغة، البروتوكول/المضيف، سلسلة الاستعلام، والتجزئة، وتضمن وجود شرطة مائلة بادئة واحدة، وتزيل أي شرطات مائلة ختامية (باستثناء الجذر)، وتستخدم / كقيمة احتياطية للقيم الفارغة.
نسخ الكود إلى الحافظة
import { normalizePath } from "intlayer";
normalizePath("/ru/path"); // "/path"
normalizePath("/ru/path/"); // "/path"
normalizePath("ru/path"); // "/path"
normalizePath("/ru/"); // "/"
normalizePath("/ru"); // "/"
normalizePath(""); // "/"
normalizePath("https://example.com/ru/path"); // "/path"دوال ذات صلة
getPathWithoutLocale: يزيل جزء اللغة من عنوان URL أو مسار.getPrefix: يحدد بادئة URL للغة معينة.getLocalizedUrl: يولد عنوان URL محلي للغة معينة.
TypeScript
نسخ الكود إلى الحافظة
function normalizePath(inputUrl: string, locales?: Locales[]): string;function comparePaths( pathname: string, href: string, locales?: Locales[]): boolean;