Дата створення:2025-08-23Останнє оновлення:2025-08-23

    Хук useRewriteURL

    Хук useRewriteURL призначений для керування локалізованими переписуваннями URL на стороні клієнта. Він автоматично визначає, чи потрібно виправити поточний URL до "pretty" локалізованої версії на основі локалі користувача та правил перепису, визначених у intlayer.config.ts.

    На відміну від стандартної навігації, цей хук використовує window.history.replaceState для оновлення URL в адресному рядку без повного перезавантаження сторінки або запуску циклу навігації роутера.

    Використання

    Просто викличте хук у компоненті на стороні клієнта.

    import { useRewriteURL } from "react.intlayer";
    import { useRewriteURL } from "react-intlayer";
    
    const MyComponent = () => {
      // Автоматично виправляє /fr/tests на /fr/essais в адресному рядку, якщо існує правило переписування
      useRewriteURL();
    
      return <div>Мій компонент</div>;
    };

    Як це працює

    1. Виявлення: Хук відстежує поточний window.location.pathname та locale користувача.
    2. Співставлення: Він використовує внутрішній движок Intlayer для перевірки, чи відповідає поточний pathname канонічному маршруту, який має більш привабливий локалізований псевдонім для поточної локалі.
    3. Виправлення URL: Якщо знайдено кращий псевдонім (і він відрізняється від поточного шляху), хук викликає window.history.replaceState, щоб оновити URL у браузері, зберігаючи той самий канонічний вміст та стан.

    Навіщо це використовувати?

    • SEO: Гарантує, що користувачі завжди потрапляють на єдиний, авторитетний pretty URL для конкретної мови.
    • Consistency: Запобігає невідповідностям, коли користувач може вручну ввести канонічний шлях (наприклад, /fr/privacy-notice) замість локалізованої версії (/fr/politique-de-confidentialite).
    • Performance: Оновлює адресний рядок без виклику небажаних побічних ефектів маршрутизатора або перемонтувань компонентів.