Задайте питання та отримайте підсумок документа, вказавши цю сторінку та обраного вами постачальника штучного інтелекту
Історія версій
- "Refactored to use options parameter with mode instead of prefixDefault"v7.1.016.11.2025
- "Init history"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, застосовуючи відповідний префікс локалі на основі наданої конфігурації або значень за замовчуванням.
Ключові особливості:
- Потрібен лише один параметр:
url - Необов'язковий об'єкт
optionsз полямиlocales,defaultLocaleтаmode - Використовує конфігурацію інтернаціоналізації вашого проєкту за замовчуванням
- Підтримує кілька режимів маршрутизації:
prefix-no-default,prefix-all,no-prefixтаsearch-params - Повертає об'єкт-мапу, де ключами є всі локалі, а значеннями, відповідні URL
Підпис функції
Скопіюйте код у буфер обміну
getMultilingualUrls( url: string, // Обов'язково options?: { // Необов'язково locales?: Locales[]; defaultLocale?: Locales; mode?: 'prefix-no-default' | 'prefix-all' | 'no-prefix' | 'search-params'; }): StrictModeLocaleMap<string>Параметри
Обов'язкові параметри
url: string- Опис: Початковий рядок URL, до якого будуть додані префікси локалей.
- Тип:
string - Обов'язково: Так
Необов'язкові параметри
options?: object- Опис: Об'єкт конфігурації для поведінки локалізації URL.
- Тип:
object Обов'язково: Ні (Необов'язково)
options.locales?: Locales[]- Опис: Масив підтримуваних локалей. Якщо не вказано, використовуються налаштовані локалі з конфігурації вашого проєкту.
- Тип:
Locales[] - За замовчуванням:
Конфігурація проєкту
options.defaultLocale?: Locales- Опис: Мова за замовчуванням для додатка. Якщо не вказано, використовується мова за замовчуванням, налаштована у конфігурації вашого проєкту.
- Тип:
Locales - За замовчуванням:
Конфігурація проєкту
options.mode?: 'prefix-no-default' | 'prefix-all' | 'no-prefix' | 'search-params'- Опис: Режим маршрутизації URL для обробки локалі. Якщо не вказано, використовується режим, налаштований у конфігурації вашого проєкту.
- Тип:
'prefix-no-default' | 'prefix-all' | 'no-prefix' | 'search-params' - За замовчуванням:
Конфігурація проєкту - Режими:
prefix-no-default: Без префікса для мови за замовчуванням, префікс для всіх іншихprefix-all: Префікс для всіх мов, включно зі мовою за замовчуваннямno-prefix: Немає префікса локалі в URLsearch-params: Використовувати параметри запиту для локалі (наприклад,?locale=fr)
Повертає
- Тип:
StrictModeLocaleMap<string> - Опис: Об'єкт, який зіставляє кожну локаль з відповідним багатомовним URL.
Приклад використання
Базове використання (використовує конфігурацію проєкту)
Скопіюйте код у буфер обміну
import { getMultilingualUrls, Locales } from "intlayer";
// Використовує конфігурацію вашого проєкту для locales, defaultLocale і mode
getMultilingualUrls("/dashboard");
// Вивід (припускаючи, що в конфігурації проєкту є en і fr з mode 'prefix-no-default'):
// {
// en: "/dashboard",
// fr: "/fr/dashboard"
// }Відносні URL з опціями
Скопіюйте код у буфер обміну
import { getMultilingualUrls, Locales } from "intlayer";
getMultilingualUrls("/dashboard", {
locales: [Locales.ENGLISH, Locales.FRENCH],
defaultLocale: Locales.ENGLISH,
mode: "prefix-no-default",
});
// Вивід: {
// en: "/dashboard",
// fr: "/fr/dashboard"
// }Абсолютні URL-адреси
Скопіюйте код у буфер обміну
getMultilingualUrls("https://example.com/dashboard", { locales: [Locales.ENGLISH, Locales.FRENCH], defaultLocale: Locales.ENGLISH, mode: "prefix-all",});// Вивід: {// 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",});// Вивід: {// 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",});// Вихід: {// en: "/en/dashboard",// fr: "/fr/dashboard",// es: "/es/dashboard"// }// no-prefix: Відсутній префікс локалі в URLgetMultilingualUrls("/dashboard", { locales: [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH], defaultLocale: Locales.ENGLISH, mode: "no-prefix",});// Вихід: {// en: "/dashboard",// fr: "/dashboard",// es: "/dashboard"// }// search-params: Локаль як параметр запитуgetMultilingualUrls("/dashboard", { locales: [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH], defaultLocale: Locales.ENGLISH, mode: "search-params",});// Вихід: {// en: "/dashboard?locale=en",// fr: "/dashboard?locale=fr",// es: "/dashboard?locale=es"// }Крайні випадки
Відсутній сегмент локалі:
- Функція видаляє будь-який існуючий сегмент локалі з URL перед генерацією багатомовних відповідностей.
Локаль за замовчуванням:
- Коли
modeдорівнює'prefix-no-default', функція не додає префікс до URL для локалі за замовчуванням. - Коли
modeдорівнює'prefix-all', функція додає префікси для всіх локалей, включно з локаллю за замовчуванням.
- Коли
Непідтримувані локалі:
- Лише локалі, вказані в масиві locales, враховуються під час генерації URL.
Режими маршрутизації:
'prefix-no-default': для локалі за замовчуванням префікс відсутній, для інших, є (наприклад,/dashboard,/fr/dashboard)'prefix-all': усі локалі мають префікси (наприклад,/en/dashboard,/fr/dashboard)'no-prefix': Немає префіксів локалі в URL (для всіх локалей повертається той самий URL)'search-params': Локаль вказується через параметр запиту (наприклад,/dashboard?locale=fr)
Використання в застосунках
У багатомовному застосунку налаштування параметрів інтернаціоналізації через 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");// Вивід:// {// en: "/dashboard",// fr: "/fr/dashboard",// es: "/es/dashboard"// }// З явними опціямиgetMultilingualUrls("/dashboard", { locales: [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH], defaultLocale: Locales.ENGLISH, mode: "prefix-no-default",});// Вивід:// {// en: "/dashboard",// fr: "/fr/dashboard",// es: "/es/dashboard"// }// Абсолютні URL з режимом "prefix-all"getMultilingualUrls("https://example.com/dashboard", { locales: [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH], defaultLocale: Locales.ENGLISH, mode: "prefix-all",});// Вивід:// {// en: "https://example.com/en/dashboard",// fr: "https://example.com/fr/dashboard",// es: "https://example.com/es/dashboard"// }Інтегруючи getMultilingualUrls, розробники можуть підтримувати узгоджену структуру URL для кількох мов, що покращує як досвід користувача, так і SEO.