Документация: Функция getMultilingualUrls в intlayer
Описание
Функция getMultilingualUrls генерирует сопоставление многоязычных URL-адресов, добавляя к заданному URL-адресу префикс для каждого поддерживаемого языка. Она может обрабатывать как абсолютные, так и относительные URL-адреса, применяя соответствующий языковой префикс на основе предоставленной конфигурации или значений по умолчанию.
Параметры
url: string
- Описание: Исходная строка URL-адреса, к которой будут добавлены языковые префиксы.
- Тип: string
locales: Locales[]
- Описание: Необязательный массив поддерживаемых языков. По умолчанию используется конфигурация языков в проекте.
- Тип: Locales[]
- По умолчанию: localesDefault
defaultLocale: Locales
- Описание: Язык по умолчанию для приложения. По умолчанию используется конфигурация языка по умолчанию в проекте.
- Тип: Locales
- По умолчанию: defaultLocaleDefault
prefixDefault: boolean
- Описание: Указывает, следует ли добавлять префикс для языка по умолчанию. По умолчанию используется значение из конфигурации проекта.
- Тип: boolean
- По умолчанию: prefixDefaultDefault
Возвращает
- Тип: IConfigLocales<string>
- Описание: Объект, сопоставляющий каждый язык с соответствующим многоязычным URL-адресом.
Пример использования
Относительные URL-адреса
import { getMultilingualUrls, Locales } from "intlayer";getMultilingualUrls( "/dashboard", [Locales.ENGLISH, Locales.FRENCH], Locales.ENGLISH, false);// Вывод: {// en: "/dashboard",// fr: "/fr/dashboard"// }
Абсолютные URL-адреса
getMultilingualUrls( "https://example.com/dashboard", [Locales.ENGLISH, Locales.FRENCH], Locales.ENGLISH, true);// Вывод: {// en: "https://example.com/en/dashboard",// fr: "https://example.com/fr/dashboard"// }
Граничные случаи
Отсутствие языкового сегмента:
- Функция удаляет любой существующий языковой сегмент из URL-адреса перед генерацией многоязычных сопоставлений.
Язык по умолчанию:
- Если prefixDefault имеет значение false, функция не добавляет префикс для URL-адреса языка по умолчанию.
Неподдерживаемые языки:
- Для генерации URL-адресов учитываются только языки, указанные в массиве locales.
Использование в приложениях
В многоязычном приложении настройка параметров интернационализации с помощью locales и defaultLocale является критически важной для обеспечения правильного отображения языка. Ниже приведен пример использования функции getMultilingualUrls в настройке приложения:
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 в качестве резервного языка.
Используя эту конфигурацию, функция getMultilingualUrls может динамически генерировать многоязычные сопоставления URL-адресов на основе поддерживаемых языков приложения:
getMultilingualUrls( "/dashboard", [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH], Locales.ENGLISH);// Вывод:// {// en: "/dashboard",// fr: "/fr/dashboard",// es: "/es/dashboard"// }getMultilingualUrls( "https://example.com/dashboard", [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH], Locales.ENGLISH, true);// Вывод:// {// en: "https://example.com/en/dashboard",// fr: "https://example.com/fr/dashboard",// es: "https://example.com/es/dashboard"// }
Интеграция getMultilingualUrls позволяет разработчикам поддерживать согласованную структуру URL-адресов для разных языков, улучшая как пользовательский опыт, так и SEO.
Если у вас есть идея по улучшению этой документации, не стесняйтесь внести свой вклад, подав запрос на вытягивание на GitHub.
Ссылка на документацию GitHub