Создание:2025-08-23Последнее обновление:2025-08-23

    Хук useRewriteURL

    Хук useRewriteURL для Svelte предназначен для управления локализованными перезаписями URL на стороне клиента. Он автоматически корректирует URL в браузере до «красивой» локализованной версии на основе текущей локали и конфигурации в intlayer.config.ts.

    Он обновляет URL незаметно, используя window.history.replaceState, избегая полной навигации SvelteKit.

    Использование

    Вызовите хук внутри Svelte-компонента.

    <script>
      import { useRewriteURL } from "svelte-intlayer";
    
      // Автоматически исправляет /fr/tests на /fr/essais в адресной строке, если существует правило переписывания
      useRewriteURL();
    </script>
    
    <slot />

    Как это работает

    1. Реактивные обновления: Хук подписывается на хранилище (store) Intlayer locale.
    2. Обнаружение: При любом изменении локали (или при монтировании) он вычисляет, есть ли у текущего window.location.pathname более удобочитаемый локализованный алиас, определённый в ваших правилах переписывания.
    3. Коррекция URL: Если найден такой путь, хук вызывает window.history.replaceState для обновления адресной строки без полной перезагрузки страницы и без вызова логики навигации SvelteKit.

    Зачем это использовать?

    • Лучшие практики SEO: Обеспечивает индексирование поисковыми системами только читаемой, локализованной версии ваших URL.
    • Improved UX: Исправляет вручную введённые URL, чтобы они соответствовали вашей предпочтительной структуре именования.
    • Silent Updates: Изменяет адресную строку без влияния на дерево компонентов или историю навигации.