Документация: Функция getLocalizedUrl в intlayer

    Описание

    Функция getLocalizedUrl генерирует локализованный URL, добавляя префикс с указанной локалью к заданному URL. Она обрабатывает как абсолютные, так и относительные URL, гарантируя, что правильный префикс локали применяется на основе конфигурации.


    Параметры

    • url: string

      • Описание: Исходная строка URL, к которой будет добавлен префикс локали.
      • Тип: string
    • currentLocale: Locales

      • Описание: Текущая локаль, для которой локализуется URL.
      • Тип: Locales
    • locales: Locales[]

      • Описание: Необязательный массив поддерживаемых локалей. По умолчанию используются локали, настроенные в проекте.
      • Тип: Locales[]
      • По умолчанию: Конфигурация проекта
    • defaultLocale: Locales

      • Описание: Локаль по умолчанию для приложения. По умолчанию используется локаль, настроенная в проекте.
      • Тип: Locales
      • По умолчанию: Конфигурация проекта
    • prefixDefault: boolean

      • Описание: Указывает, нужно ли добавлять префикс к URL для локали по умолчанию. По умолчанию используется значение, настроенное в проекте.
      • Тип: boolean
      • По умолчанию: Конфигурация проекта

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

    • Тип: string
    • Описание: Локализованный URL для указанной локали.

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

    Относительные URL

    typescript
    import { getLocalizedUrl, Locales } from "intlayer";getLocalizedUrl(  "/about",  Locales.FRENCH,  [Locales.ENGLISH, Locales.FRENCH],  Locales.ENGLISH,  false);// Вывод: "/fr/about" для французской локали// Вывод: "/about" для локали по умолчанию (английский)

    Абсолютные URL

    typescript
    getLocalizedUrl(  "https://example.com/about",  Locales.FRENCH, // Текущая локаль  [Locales.ENGLISH, Locales.FRENCH], // Поддерживаемые локали  Locales.ENGLISH, // Локаль по умолчанию  false // Префикс для локали по умолчанию); // Вывод: "https://example.com/fr/about" для французской локалиgetLocalizedUrl(  "https://example.com/about",  Locales.ENGLISH, // Текущая локаль  [Locales.ENGLISH, Locales.FRENCH], // Поддерживаемые локали  Locales.ENGLISH, // Локаль по умолчанию  false // Префикс для локали по умолчанию); // Вывод: "https://example.com/about" для английской локалиgetLocalizedUrl(  "https://example.com/about",  Locales.ENGLISH, // Текущая локаль  [Locales.ENGLISH, Locales.FRENCH], // Поддерживаемые локали  Locales.ENGLISH, // Локаль по умолчанию  true // Префикс для локали по умолчанию); // Вывод: "https://example.com/en/about" для английской локали

    Неподдерживаемая локаль

    typescript
    getLocalizedUrl(  "/about",  Locales.ITALIAN, // Текущая локаль  [Locales.ENGLISH, Locales.FRENCH], // Поддерживаемые локали  Locales.ENGLISH // Локаль по умолчанию); // Вывод: "/about" (префикс не применяется для неподдерживаемой локали)

    Особые случаи

    • Отсутствие сегмента локали:

      • Если URL не содержит сегмента локали, функция безопасно добавляет соответствующий префикс локали.
    • Локаль по умолчанию:

      • Когда prefixDefault равно false, функция не добавляет префикс к URL для локали по умолчанию.
    • Неподдерживаемые локали:

      • Для локалей, не указанных в locales, функция не применяет префикс.

    Использование в приложениях

    В многоязычном приложении настройка параметров интернационализации с помощью locales и defaultLocale является критически важной для обеспечения отображения правильного языка. Ниже приведен пример использования функции getLocalizedUrl в настройке приложения:

    tsx
    import { Locales, type IntlayerConfig } from "intlayer";// Конфигурация поддерживаемых локалей и локали по умолчаниюexport default {  internationalization: {    locales: [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH],    defaultLocale: Locales.ENGLISH,  },} satisfies IntlayerConfig;export default config;

    Эта конфигурация гарантирует, что приложение распознает ENGLISH, FRENCH и SPANISH как поддерживаемые языки и использует ENGLISH в качестве резервного языка.

    Используя эту конфигурацию, функция getLocalizedUrl может динамически генерировать локализованные URL на основе предпочтений пользователя:

    typescript
    getLocalizedUrl("/about", Locales.FRENCH); // Вывод: "/fr/about"getLocalizedUrl("/about", Locales.SPANISH); // Вывод: "/es/about"getLocalizedUrl("/about", Locales.ENGLISH); // Вывод: "/about"

    Интеграция getLocalizedUrl позволяет разработчикам поддерживать согласованную структуру URL для нескольких языков, улучшая пользовательский опыт и SEO.

    Если у вас есть идея по улучшению этой документации, не стесняйтесь внести свой вклад, подав запрос на вытягивание на GitHub.

    Ссылка на документацию GitHub