Задайте вопрос и получите краткое содержание документа через любого ИИ-провайдера на этой странице
Этот документ устарел, базовая версия была обновлена 16 ноября 2025 г..
Перейти к английской документацииИстория версий
- "Инициализация истории"v5.5.1029.06.2025
Содержимое этой страницы было переведено с помощью ИИ.
Смотреть последнюю версию оригинального контента на английскомIf 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
Документация: функция getMultilingualUrls в intlayer
Описание
Функция getMultilingualUrls генерирует отображение многоязычных URL-адресов путём добавления префикса локали к заданному URL-адресу. Она может обрабатывать как абсолютные, так и относительные URL-адреса, применяя подходящий префикс локали на основе предоставленной конфигурации или значений по умолчанию.
Ключевые возможности:
- Требуется только 1 параметр:
url - Опциональный объект
optionsс параметрамиlocales,defaultLocaleиmode - Использует конфигурацию интернационализации вашего проекта в качестве значений по умолчанию
- Поддерживает несколько режимов маршрутизации:
prefix-no-default,prefix-all,no-prefixиsearch-params - Возвращает объект отображения со всеми локалями в качестве ключей и соответствующими URL-адресами в качестве значений
Описание
Функция getMultilingualUrls генерирует отображение многоязычных URL, добавляя префикс с каждым поддерживаемым языком к заданному URL. Она может обрабатывать как абсолютные, так и относительные URL, применяя соответствующий префикс языка на основе предоставленной конфигурации или значений по умолчанию.
Параметры
Параметры
url: string- Описание: Исходная строка URL, к которой будут добавлены префиксы языков.
- Тип:
string
locales: Locales[]- Описание: Необязательный массив поддерживаемых языков. По умолчанию используется конфигурируемый список языков в проекте.
- Тип:
Locales[] - По умолчанию:
localesDefault
defaultLocale: Locales- Описание: Язык по умолчанию для приложения. По умолчанию используется конфигурируемый язык по умолчанию в проекте.
- Тип:
Locales - По умолчанию:
defaultLocaleDefault
prefixDefault: boolean- Описание: Нужно ли добавлять префикс для языка по умолчанию. По умолчанию используется настроенное значение в проекте.
- Тип:
boolean - По умолчанию:
prefixDefaultDefault
Опциональные параметры
options?: object- Description: Объект конфигурации для поведения локализации URL.
- Type:
object Required: No (Optional)
options.locales?: Locales[]- Description: Массив поддерживаемых локалей. Если не предоставлен, использует настроенные локали из конфигурации вашего проекта.
- Type:
Locales[] - Default:
Project Configuration
options.defaultLocale?: Locales- Description: Локаль по умолчанию для приложения. Если не предоставлена, использует настроенную локаль по умолчанию из конфигурации вашего проекта.
- Type:
Locales - Default:
Project Configuration
options.mode?: 'prefix-no-default' | 'prefix-all' | 'no-prefix' | 'search-params'- Description: Режим маршрутизации URL для обработки локалей. Если не предоставлен, использует настроенный режим из конфигурации вашего проекта.
- Type:
'prefix-no-default' | 'prefix-all' | 'no-prefix' | 'search-params' - Default:
Project Configuration - Modes:
prefix-no-default: Без префикса для локали по умолчанию, с префиксом для всех остальныхprefix-all: Префикс для всех локалей, включая локаль по умолчаниюno-prefix: Без префикса локали в URLsearch-params: Использование параметров запроса для локали (например,?locale=fr)
Возвращаемое значение
- Тип:
IConfigLocales<string> - Описание: Объект, сопоставляющий каждый язык с соответствующим многоязычным URL.
Пример использования
Базовое использование (использует конфигурацию проекта)
Копировать код в буфер обмена
import { getMultilingualUrls, Locales } from "intlayer";
// Использует конфигурацию вашего проекта для локалей, defaultLocale и mode
getMultilingualUrls("/dashboard");
// Output (assuming project config has en, fr with mode 'prefix-no-default'):
// {
// en: "/dashboard",
// fr: "/fr/dashboard"
// }Относительные 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"// }Различные режимы маршрутизации
Копировать код в буфер обмена
// prefix-no-default: Без префикса для локали по умолчаниюgetMultilingualUrls("/dashboard", { locales: [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH], defaultLocale: Locales.ENGLISH, mode: "prefix-no-default",});// Output: {// en: "/dashboard",// fr: "/fr/dashboard",// es: "/es/dashboard"// }// prefix-all: Префикс для всех локалейgetMultilingualUrls("/dashboard", { locales: [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH], defaultLocale: Locales.ENGLISH, mode: "prefix-all",});// Output: {// en: "/en/dashboard",// fr: "/fr/dashboard",// es: "/es/dashboard"// }// no-prefix: Без префикса локали в URL-адресахgetMultilingualUrls("/dashboard", { locales: [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH], defaultLocale: Locales.ENGLISH, mode: "no-prefix",});// Output: {// en: "/dashboard",// fr: "/dashboard",// es: "/dashboard"// }// search-params: Локаль в качестве параметра запросаgetMultilingualUrls("/dashboard", { locales: [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH], defaultLocale: Locales.ENGLISH, mode: "search-params",});// Output: {// en: "/dashboard?locale=en",// fr: "/dashboard?locale=fr",// es: "/dashboard?locale=es"// }Особые случаи
Отсутствие сегмента языка:
- Функция удаляет любой существующий сегмент локали из URL перед генерацией многоязычных отображений.
Локаль по умолчанию:
- Когда
prefixDefaultравноfalse, функция не добавляет префикс к URL для локали по умолчанию.
- Когда
Неподдерживаемые локали:
- Для генерации URL учитываются только локали, указанные в массиве
locales.
- Для генерации URL учитываются только локали, указанные в массиве
Использование в приложениях
В многоязычном приложении настройка параметров интернационализации с помощью 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.