Data utworzenia:2025-11-16Ostatnia aktualizacja:2025-11-16

    Dokumentacja: funkcja getPrefix w intlayer

    Opis

    Funkcja getPrefix określa prefiks URL dla podanego locale na podstawie konfiguracji trybu routingu. Porównuje locale z domyślnym locale i zwraca obiekt zawierający trzy różne formaty prefiksów dla elastycznego budowania URL.

    Kluczowe cechy:

    • Przyjmuje locale jako pierwszy parametr (wymagany)
    • Opcjonalny obiekt options z defaultLocale i mode
    • Zwraca obiekt z właściwościami prefix i localePrefix
    • Obsługuje wszystkie tryby routingu: prefix-no-default, prefix-all, no-prefix oraz search-params
    • Lekka funkcja pomocnicza do określania, kiedy dodać prefiksy locale

    Sygnatura funkcji

    getPrefix(
      locale: Locales,               // Wymagany
      options?: {                    // Opcjonalny
        defaultLocale?: Locales;
        mode?: 'prefix-no-default' | 'prefix-all' | 'no-prefix' | 'search-params';
      }
    ): GetPrefixResult
    
    type GetPrefixResult = {
      prefix: string;   // np. 'fr/' lub ''
      localePrefix?: Locale; // np. 'fr' lub undefined
    }

    Parametry

    • locale: Locales

      • Opis: Locale, dla którego generowany jest prefiks. Jeśli wartość jest fałszywa (undefined, null, pusty ciąg znaków), funkcja zwraca pusty ciąg znaków.
      • Typ: Locales
      • Wymagany: Tak
    • options?: object

      • Opis: Obiekt konfiguracyjny do określania prefiksu.
      • Typ: object
      • Wymagany: Nie (Opcjonalny)

      • options.defaultLocale?: Locales

        • Opis: Domyślne locale aplikacji. Jeśli nie zostanie podane, używane jest domyślne locale skonfigurowane w Twoim projekcie.
        • Typ: Locales
        • Domyślnie: Konfiguracja projektu
      • options.mode?: 'prefix-no-default' | 'prefix-all' | 'no-prefix' | 'search-params'

        • Opis: Tryb routingu URL dla obsługi locale. Jeśli nie zostanie podany, używany jest tryb skonfigurowany w Twoim projekcie.
        • Typ: 'prefix-no-default' | 'prefix-all' | 'no-prefix' | 'search-params'
        • Domyślnie: Konfiguracja projektu
        • Tryby:
          • prefix-no-default: Zwraca pusty ciąg, gdy locale odpowiada domyślnemu locale
          • prefix-all: Zwraca prefiks dla wszystkich locale, w tym domyślnego
          • no-prefix: Zwraca pusty ciąg (brak prefiksu w URL)
          • search-params: Zwraca pusty ciąg (locale w parametrach zapytania)

    Zwraca

    • Typ: GetPrefixResult
    • Opis: Obiekt zawierający trzy różne formaty prefiksu:
      • prefix: Prefiks ścieżki z ukośnikiem na końcu (np. 'fr/', '')
      • localePrefix: Identyfikator locale bez ukośników (np. 'fr', undefined)

    Przykład użycia

    Podstawowe użycie

    import { getPrefix, Locales } from "intlayer";
    
    // Sprawdź prefiks dla locale angielskiego
    getPrefix(Locales.ENGLISH, {
      defaultLocale: Locales.ENGLISH,
      mode: "prefix-all",
    });
    // Zwraca: { prefix: 'en/', localePrefix: 'en' }
    
    // Sprawdź prefiks dla locale francuskiego
    getPrefix(Locales.FRENCH, {
      defaultLocale: Locales.ENGLISH,
      mode: "prefix-no-default",
    });
    // Zwraca: { prefix: 'fr/', localePrefix: 'fr' }

    Różne tryby routingu

    import { getPrefix, Locales } from "intlayer";
    
    // prefix-all: Zawsze zwraca prefiks
    getPrefix(Locales.ENGLISH, {
      mode: "prefix-all",
      defaultLocale: Locales.ENGLISH,
    });
    // Zwraca: { prefix: '/en', localePrefix: 'en' }
    
    // prefix-no-default: Brak prefiksu, gdy locale jest zgodne z domyślnym
    getPrefix(Locales.ENGLISH, {
      mode: "prefix-no-default",
      defaultLocale: Locales.ENGLISH,
    });
    // Zwraca: { prefix: '', localePrefix: undefined }
    
    // prefix-no-default: Zwraca prefiks, gdy locale różni się od domyślnego
    getPrefix(Locales.FRENCH, {
      mode: "prefix-no-default",
      defaultLocale: Locales.ENGLISH,
    });
    // Zwraca: { prefix: 'fr/', localePrefix: 'fr' }
    
    // no-prefix & search-params: Nigdy nie zwraca prefiksu
    getPrefix(Locales.ENGLISH, { mode: "no-prefix" });
    // Zwraca: { prefix: '', localePrefix: undefined }
    
    getPrefix(Locales.ENGLISH, { mode: "search-params" });
    // Zwraca: { prefix: '', localePrefix: undefined }

    Praktyczny przykład

    import { getPrefix, Locales } from "intlayer";
    
    // Budowanie URL z odpowiednim prefiksem dla konkretnego locale
    const locale = Locales.FRENCH;
    const { prefix, localePrefix } = getPrefix(locale, {
      defaultLocale: Locales.ENGLISH,
      mode: "prefix-no-default",
    });
    
    // Używanie prefiksu do konstrukcji ścieżki
    const url1 = `/${prefix}about`.replace(/\/+/g, "/");
    // Wynik: "/fr/about"
    
    // Używanie localePrefix do identyfikacji locale
    console.log(`Aktualne locale: ${localePrefix}`);
    // Wyjście: "Aktualne locale: fr"

    Powiązane funkcje


    TypeScript

    type GetPrefixResult = {
      prefix: string; // Prefiks ścieżki z końcowym ukośnikiem (np. 'fr/' lub '')
      localePrefix?: Locale; // Identyfikator locale bez ukośników (np. 'fr' lub undefined)
    };
    
    function getPrefix(
      locale: Locales,
      options?: {
        defaultLocale?: Locales;
        mode?: "prefix-no-default" | "prefix-all" | "no-prefix" | "search-params";
      }
    ): GetPrefixResult;