Документация: Функция 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 для языка по умолчанию.
Неподдерживаемые языки:
- Учитываются только языки, предоставленные в массиве 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.
Если у вас есть идея по улучшению этой документации, не стесняйтесь внести свой вклад, подав запрос на вытягивание на GitHub.
Ссылка на документацию GitHub