Creation:2025-11-16Last update:2025-11-16

    Документація: функція getPrefix в intlayer

    Опис

    Функція getPrefix визначає префікс URL для заданої локалі на основі конфігурації режиму маршрутизації. Вона порівнює локаль з локаллю за замовчуванням і повертає об'єкт, що містить три різні формати префіксів для гнучкого побудови URL.

    Ключові особливості:

    • Приймає локаль як перший параметр (обов'язково)
    • Необов'язковий об'єкт options з полями defaultLocale та mode
    • Повертає об'єкт з властивостями prefix та localePrefix
    • Підтримує всі режими маршрутизації: prefix-no-default, prefix-all, no-prefix та search-params
    • Легка утиліта для визначення, коли додавати префікси локалі

    Підпис функції

    typescript
    getPrefix(  locale: Locales,               // Обов'язково  options?: {                    // Необов'язково    defaultLocale?: Locales;    mode?: 'prefix-no-default' | 'prefix-all' | 'no-prefix' | 'search-params';  }): GetPrefixResulttype GetPrefixResult = {  prefix: string;   // напр., 'fr/' або ''  localePrefix?: Locale; // напр., 'fr' або undefined}

    Параметри

    • locale: Locales

      • Опис: Локаль, для якої потрібно згенерувати префікс. Якщо значення є falsy (undefined, null, порожній рядок), функція повертає порожній рядок.
      • Тип: Locales
      • Обов'язкове: Так
    • options?: object

      • Опис: Об'єкт конфігурації для визначення префіксу.
      • Тип: object
      • Обов'язкове: Ні (Необов'язково)

      • 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: Повертає порожні рядки (без префікса в URL)
          • search-params: Повертає порожні рядки (локаль у параметрах запиту)

    Повертає

    • Тип: GetPrefixResult
    • Опис: Об'єкт, що містить три різні формати префіксів:
      • prefix: Префікс шляху з кінцевим слешем (наприклад, 'fr/', '')
      • localePrefix: Ідентифікатор локалі без слешів (наприклад, 'fr', undefined)

    Приклад використання

    Базове використання

    typescript
    import { getPrefix, Locales } from "intlayer";
    
    // Перевірка префіксу для англійської локалі
    getPrefix(Locales.ENGLISH, {
      defaultLocale: Locales.ENGLISH,
      mode: "prefix-all",
    });
    // Повертає: { prefix: 'en/', localePrefix: 'en' }
    
    // Перевірка префіксу для французької локалі
    getPrefix(Locales.FRENCH, {
      defaultLocale: Locales.ENGLISH,
      mode: "prefix-no-default",
    });
    // Повертає: { prefix: 'fr/', localePrefix: 'fr' }

    Різні режими маршрутизації

    typescript
    import { getPrefix, Locales } from "intlayer";// prefix-all: Завжди повертає префіксgetPrefix(Locales.ENGLISH, {  mode: "prefix-all",  defaultLocale: Locales.ENGLISH,});// Повертає: { prefix: '/en', localePrefix: 'en' }// prefix-no-default: Без префікса, коли локаль збігається зі значенням за замовчуваннямgetPrefix(Locales.ENGLISH, {  mode: "prefix-no-default",  defaultLocale: Locales.ENGLISH,});// Повертає: { prefix: '', localePrefix: undefined }// prefix-no-default: Повертає префікс, коли локаль відрізняється від локалі за замовчуваннямgetPrefix(Locales.FRENCH, {  mode: "prefix-no-default",  defaultLocale: Locales.ENGLISH,});// Повертає: { prefix: 'fr/', localePrefix: 'fr' }// no-prefix & search-params: Ніколи не повертає префіксgetPrefix(Locales.ENGLISH, { mode: "no-prefix" });// Повертає: { prefix: '', localePrefix: undefined }getPrefix(Locales.ENGLISH, { mode: "search-params" });// Повертає: { prefix: '', localePrefix: undefined }

    Практичний приклад

    typescript
    import { getPrefix, Locales } from "intlayer";// Формуємо URL з відповідним префіксом для конкретної локаліconst locale = Locales.FRENCH;const { prefix, localePrefix } = getPrefix(locale, {  defaultLocale: Locales.ENGLISH,  mode: "prefix-no-default",});// Використання prefix для побудови шляхуconst url1 = `/${prefix}about`.replace(/\/+/g, "/");// Результат: "/fr/about"// Використання localePrefix для ідентифікації локаліconsole.log(`Current locale: ${localePrefix}`);// Вивід: "Current locale: fr"

    Пов'язані функції

    • getLocalizedUrl: Генерує локалізований URL для певної локалі
    • getMultilingualUrls: Генерує URL-адреси для всіх налаштованих локалей

    TypeScript

    typescript
    type GetPrefixResult = {  prefix: string; // Префікс шляху з кінцевим слешем (наприклад, 'fr/' або '')  localePrefix?: Locale; // Ідентифікатор локалі без слешів (наприклад, 'fr' або undefined)};function getPrefix(  locale: Locales,  options?: {    defaultLocale?: Locales;    mode?: "prefix-no-default" | "prefix-all" | "no-prefix" | "search-params";  }): GetPrefixResult;