Creation:2026-01-22Last update:2026-01-22

    Документация: функция getCanonicalPath в intlayer

    Описание

    Функция getCanonicalPath преобразует локализованный URL-путь (например, /a-propos) обратно в его внутренний канонический путь приложения (например, /about). Это необходимо для маршрутизаторов, чтобы сопоставлять правильный внутренний маршрут независимо от языка в URL.

    Ключевые возможности:

    • Поддерживает динамические параметры маршрута с использованием синтаксиса [param].
    • Сопоставляет локализованные пути с пользовательскими правилaми перезаписи (rewrite rules), заданными в вашей конфигурации.
    • Возвращает исходный путь, если подходящее правило перезаписи не найдено.

    Сигнатура функции

    typescript
    getCanonicalPath(  localizedPath: string,         // Обязательно  locale: Locales,               // Обязательно  rewriteRules?: RoutingConfig['rewrite'] // Необязательно): string

    Параметры

    Обязательные параметры

    • localizedPath: string

      • Описание: Локализованный путь, как он отображается в браузере (например, /a-propos).
      • Тип: string
      • Обязательно: Да
    • locale: Locales

      • Описание: Локаль, используемая для разрешения пути.
      • Тип: Locales
      • Обязательно: Да

    Необязательные параметры

    • rewriteRules?: RoutingConfig['rewrite']
      • Описание: Объект, определяющий пользовательские правила переписывания. Если не указан, по умолчанию используется свойство routing.rewrite из конфигурации вашего проекта.
      • Тип: RoutingConfig['rewrite']
      • По умолчанию: configuration.routing.rewrite

    Возвращаемое значение

    • Тип: string
    • Описание: Внутренний канонический путь.

    Пример использования

    Базовое использование (с конфигурацией)

    Если вы настроили пользовательские правила переписывания в вашем intlayer.config.ts:

    typescript
    import { getCanonicalPath, Locales } from "intlayer";// Конфигурация: { '/about': { en: '/about', fr: '/a-propos' } }getCanonicalPath("/a-propos", Locales.FRENCH);// Вывод: "/about"getCanonicalPath("/about", Locales.ENGLISH);// Вывод: "/about"

    Использование с динамическими маршрутами

    typescript
    import { getCanonicalPath, Locales } from "intlayer";// Конфигурация: { '/product/[id]': { en: '/product/[id]', fr: '/produit/[id]' } }getCanonicalPath("/produit/123", Locales.FRENCH);// Вывод: "/product/123"

    Ручные правила перезаписи

    Вы также можете передать ручные правила перезаписи в функцию:

    typescript
    import { getCanonicalPath, Locales } from "intlayer";const manualRules = {  "/contact": {    en: "/contact-us",    fr: "/contactez-nous",  },};getCanonicalPath("/contactez-nous", Locales.FRENCH, manualRules);// Output: "/contact"

    Связанные функции

    • getLocalizedPath: Преобразует канонический путь в его локализованный эквивалент.
    • getLocalizedUrl: Генерирует полностью локализованный URL (включая протокол, хост и префикс локали).