المؤلف:
    إنشاء:2026-06-22آخر تحديث:2026-06-22

    تكامل Svelte: توثيق usePathname

    تعيد دالة usePathname مسار المتصفح الحالي (pathname) بعد إزالة جزء الـ locale منه، وتُرجع ذلك كمخزن (store) من نوع Readable<string> في Svelte. يُعد هذا مفيدًا لبناء تنقل (navigation) يراعي الـ locale — على سبيل المثال، لتحديد عنصر التنقل النشط حاليًا — دون الحاجة إلى إزالة بادئة الـ locale يدويًا.

    استيراد usePathname في Svelte

    typescript
    import { usePathname } from "svelte-intlayer";

    نظرة عامة

    تقوم usePathname بإنشاء store قابل للقراءة في Svelte يقرأ من window.location.pathname، ويزيل بادئة الـ locale باستخدام getPathWithoutLocale، ثم يُصدر قيمة جديدة كلما أطلق المتصفح حدث popstate (التنقل للخلف/للأمام). اشترك في هذا الـ store باستخدام صيغة $ داخل المكونات (components).

    الاستخدام

    src/components/NavItem.svelte
    <script lang="ts">  import { usePathname } from "svelte-intlayer";  export let href: string;  export let label: string;  const pathname = usePathname();</script><a {href} aria-current={$pathname === href ? "page" : undefined}>  {label}</a>

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

    النوع الوصف
    Readable<string> Store Svelte قابل للقراءة يحتوي على مسار URL الحالي (pathname) بدون بادئة الـ locale.

    السلوك

    • إزالة الـ Locale: تزيل مقطع الـ locale الأمامي (مثلًا /ar/dashboard/dashboard).
    • تفاعلية (Reactive): تُصدر قيمة جديدة عند كل حدث popstate (التنقل للخلف / للأمام في المتصفح).
    • آمنة في SSR: تعيد "" عندما يكون window غير متوفر.
    • التنظيف (Cleanup): تتم إزالة مستمع (listener) الـ popstate تلقائيًا عندما يلغي آخر مشترك (subscriber) اشتراكه.

    مثال

    src/components/Sidebar.svelte
    <script lang="ts">  import { usePathname } from "svelte-intlayer";  const links = [    { href: "/dashboard", label: "لوحة التحكم" },    { href: "/settings", label: "الإعدادات" },  ];  const pathname = usePathname();</script><nav>  {#each links as link}    <a      href={link.href}      style:font-weight={$pathname === link.href ? "bold" : "normal"}    >      {link.label}    </a>  {/each}</nav>

    مواضيع ذات صلة

    • useLocale — الـ locale الحالي + مبدّل الـ locale
    • getPathWithoutLocale — الأداة الأساسية المُستخدمة داخل هذا الـ hook