Haz tu pregunta y obtén un resumen del documento referenciando esta página y el proveedor AI de tu elección
Historial de versiones
- "Documentación inicial"v9.0.022/6/2026
El contenido de esta página ha sido traducido con una IA.
Ver la última versión del contenido original en inglésIf 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
Documentación: Función comparePaths en intlayer
Descripción
La función comparePaths compara dos URL o rutas para comprobar su igualdad mientras ignora el segmento de idioma (locale), el protocolo/dominio, la cadena de consulta (query string), el hash y las barras diagonales finales. Es la forma recomendada para determinar si un enlace de navegación apunta a la página actual —por ejemplo, para resaltar el enlace activo— sin tener que implementar tu propia lógica de normalización (propensa a errores).
Internamente reutiliza getPathWithoutLocale para eliminar el segmento de idioma, por lo que respeta tu modo de enrutamiento y los idiomas configurados.
El paquete también exporta la utilidad subyacente normalizePath, que devuelve la ruta canónica independiente del idioma utilizada para la comparación.
Características principales:
- Comparación independiente del idioma (
/es/aboutcoincide con/about) - Funciona con URL absolutas y rutas relativas
- Ignora la cadena de consulta, el hash y las barras diagonales finales
- Tolera la ausencia de barra oblicua inicial y valores vacíos (normalizado a
/) - Ligero — construido sobre
getPathWithoutLocale
Firma de la función
Copiar el código al portapapeles
comparePaths( pathname: string, // Requerido href: string, // Requerido locales?: Locales[] // Opcional): booleannormalizePath( inputUrl: string, // Requerido locales?: Locales[] // Opcional): stringParámetros
pathname: string- Descripción: La primera cadena de URL o ruta a comparar (generalmente la ruta actual).
- Tipo:
string - Requerido: Sí
href: string- Descripción: La segunda cadena de URL o ruta a comparar (generalmente el
hrefde un enlace de navegación). - Tipo:
string - Requerido: Sí
- Descripción: La segunda cadena de URL o ruta a comparar (generalmente el
locales: Locales[]- Descripción: Array opcional de idiomas soportados. Por defecto, los idiomas configurados en el proyecto.
- Tipo:
Locales[] - Requerido: No (Opcional)
Retornos
- Tipo:
boolean - Descripción:
truecuando ambas entradas se resuelven a la misma ruta independiente del idioma, de lo contrariofalse.
Ejemplo de uso
Uso básico
Copiar el código al portapapeles
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"); // falseURL absolutas y relativas
Copiar el código al portapapeles
import { comparePaths } from "intlayer";comparePaths("https://example.com/ru/path", "/path"); // trueResaltar el enlace de navegación activo
Copiar el código al portapapeles
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 devuelve la ruta canónica e independiente del idioma utilizada por comparePaths. Elimina el segmento de idioma, el protocolo/dominio, la cadena de consulta y el hash, asegura una única barra oblicua inicial, elimina cualquier barra diagonal final (excepto en la raíz) y usa / como valor predeterminado para valores vacíos.
Copiar el código al portapapeles
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"Funciones relacionadas
getPathWithoutLocale: Elimina el segmento de idioma de una URL o ruta.getPrefix: Determina el prefijo de URL para un idioma dado.getLocalizedUrl: Genera una URL localizada para un idioma específico.
TypeScript
Copiar el código al portapapeles
function normalizePath(inputUrl: string, locales?: Locales[]): string;function comparePaths( pathname: string, href: string, locales?: Locales[]): boolean;