Autore:
    Creazione:2026-06-22Ultimo aggiornamento:2026-06-22

    Documentazione: Funzione comparePaths in intlayer

    Descrizione

    La funzione comparePaths confronta due URL o percorsi per verificarne l'uguaglianza ignorando il segmento locale, il protocollo/host, la query string, l'hash e le barre finali. È il metodo consigliato per determinare se un link di navigazione punta alla pagina corrente — ad esempio per evidenziare il link attivo — senza dover creare una logica di normalizzazione personalizzata (soggetta a errori).

    Internamente riutilizza getPathWithoutLocale per rimuovere il segmento locale, in modo da rispettare la modalità di routing e i locale configurati.

    Il pacchetto esporta anche l'utility sottostante normalizePath, che restituisce il percorso canonico, indipendente dal locale, utilizzato per il confronto.

    Funzionalità chiave:

    • Confronto indipendente dal locale (/it/about corrisponde a /about)
    • Funziona sia con URL assoluti che con percorsi relativi
    • Ignora query string, hash e barre finali
    • Tollera l'assenza di barre iniziali e valori vuoti (normalizzato a /)
    • Leggero — basato su getPathWithoutLocale

    Firma della funzione

    typescript
    comparePaths(  pathname: string,  // Richiesto  href: string,      // Richiesto  locales?: Locales[] // Opzionale): booleannormalizePath(  inputUrl: string,   // Richiesto  locales?: Locales[] // Opzionale): string

    Parametri

    • pathname: string

      • Descrizione: La prima stringa URL o percorso da confrontare (in genere il percorso corrente).
      • Tipo: string
      • Richiesto: Sì
    • href: string

      • Descrizione: La seconda stringa URL o percorso da confrontare (in genere l'href di un link di navigazione).
      • Tipo: string
      • Richiesto: Sì
    • locales: Locales[]

      • Descrizione: Array opzionale di locale supportati. Per impostazione predefinita, i locale configurati nel progetto.
      • Tipo: Locales[]
      • Richiesto: No (Opzionale)

    Restituisce

    • Tipo: boolean
    • Descrizione: true quando entrambi gli input si risolvono allo stesso percorso indipendente dal locale, altrimenti false.

    Esempio di utilizzo

    Utilizzo di base

    typescript
    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 assoluti e relativi

    typescript
    import { comparePaths } from "intlayer";comparePaths("https://example.com/ru/path", "/path"); // true
    tsx
    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 restituisce il percorso canonico e indipendente dal locale utilizzato da comparePaths. Rimuove il segmento locale, il protocollo/host, la query string e l'hash, assicura la presenza di una singola barra iniziale, rimuove qualsiasi barra finale (tranne che per la root) e utilizza / come fallback per i valori vuoti.

    typescript
    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"

    Funzioni correlate


    TypeScript

    typescript
    function normalizePath(inputUrl: string, locales?: Locales[]): string;function comparePaths(  pathname: string,  href: string,  locales?: Locales[]): boolean;