Спросите свой вопрос и получите сводку документа, используя эту страницу и выбранного вами поставщика AI
Этот документ устарел, базовая версия была обновлена 16 ноября 2025 г..
Перейти к английской документацииИстория версий
- "Инициализация истории"v5.5.1029.06.2025
Содержимое этой страницы было переведено с помощью ИИ.
Смотреть последнюю версию оригинального контента на английскомЕсли у вас есть идея по улучшению этой документации, не стесняйтесь внести свой вклад, подав запрос на вытягивание на GitHub.
Ссылка на документацию GitHubКопировать Markdown документа в буфер обмена
Документация: функция getLocalizedUrl в intlayer
Описание
Функция getLocalizedUrl генерирует локализованный URL, добавляя префикс с указанной локалью к заданному URL. Она обрабатывает как абсолютные, так и относительные URL, обеспечивая правильное применение префикса локали на основе конфигурации.
Основные возможности:
- Требуются только 2 параметра:
urlиcurrentLocale - Опциональный объект
optionsсlocales,defaultLocaleиmode - Использует конфигурацию интернационализации вашего проекта по умолчанию
- Может использоваться с минимальными параметрами для простых случаев или полностью настраиваться для сложных сценариев
- Поддерживает несколько режимов маршрутизации:
prefix-no-default,prefix-all,no-prefixиsearch-params
Сигнатура функции
Копировать код в буфер обмена
Параметры
Обязательные параметры
url: string- Description: Исходная строка URL, которая должна быть дополнена локалью.
- Type:
string - Required: Yes
currentLocale: Locales- Description: Текущая локаль, для которой выполняется локализация URL.
- Type:
Locales - Required: Yes
Дополнительные параметры
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)
Возвращает
- Тип:
string - Описание: Локализованный URL для указанной локали.
Пример использования
Базовое использование (только необходимые параметры)
Когда вы настроили свой проект с параметрами интернационализации, вы можете использовать функцию только с необходимыми параметрами:
Копировать код в буфер обмена
import { getLocalizedUrl, Locales } from "intlayer";
// Использует конфигурацию вашего проекта для locales, defaultLocale и mode
getLocalizedUrl("/about", Locales.FRENCH);
// Вывод: "/fr/about" (при условии, что французский поддерживается и mode установлен на 'prefix-no-default')
getLocalizedUrl("/about", Locales.ENGLISH);
// Вывод: "/about" или "/en/about" (в зависимости от параметра mode)
Advanced Usage (With Optional Parameters)
Вы можете переопределить конфигурацию по умолчанию, предоставив необязательный параметр options:
Относительные URL
Копировать код в буфер обмена
import { getLocalizedUrl, Locales } from "intlayer";
getLocalizedUrl(
"/about",
Locales.FRENCH,
[Locales.ENGLISH, Locales.FRENCH],
Locales.ENGLISH,
false
);
// Вывод: "/fr/about" для французской локали
// Вывод: "/about" для локали по умолчанию (английский)
Частичное переопределение конфигурации
Вы также можете предоставить только некоторые необязательные параметры. Функция будет использовать конфигурацию вашего проекта для любых параметров, которые вы не указали:
Копировать код в буфер обмена
Абсолютные URL
Копировать код в буфер обмена
Неподдерживаемая локаль
Копировать код в буфер обмена
Особые случаи
Отсутствие сегмента локали:
- Если URL не содержит сегмента локали, функция безопасно добавляет соответствующую локаль в префикс.
Локаль по умолчанию:
- Когда
prefixDefaultравноfalse, функция не добавляет префикс для URL локали по умолчанию.
- Когда
Неподдерживаемые локали:
- Для локалей, не указанных в списке
locales, функция не применяет никакого префикса.
- Для локалей, не указанных в списке
Режимы маршрутизации:
'prefix-no-default': Локаль по умолчанию не имеет префикса, остальные имеют (например,/about,/fr/about)'prefix-all': Все локали имеют префиксы (например,/en/about,/fr/about)'no-prefix': Нет префиксов локалей в URL (локаль обрабатывается в другом месте)'search-params': Локаль указана через параметр запроса (например,/about?locale=fr)
Использование в приложениях
В многоязычном приложении настройка параметров интернационализации с помощью locales и defaultLocale имеет решающее значение для обеспечения отображения правильного языка. Ниже приведён пример того, как функция getLocalizedUrl может использоваться в настройках приложения:
Копировать код в буфер обмена
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-адреса в зависимости от предпочтений языка пользователя:
Копировать код в буфер обмена
Интегрируя getLocalizedUrl, разработчики могут поддерживать единообразную структуру URL на нескольких языках, улучшая как пользовательский опыт, так и SEO.
