Erstellung:2025-11-16Letzte Aktualisierung:2025-11-16

    Dokumentation: getPrefix Funktion in intlayer

    Beschreibung

    Die Funktion getPrefix bestimmt das URL-Präfix für eine gegebene Locale basierend auf der Routing-Modus-Konfiguration. Sie vergleicht die Locale mit der Standard-Locale und gibt ein Objekt zurück, das drei verschiedene Präfix-Formate für eine flexible URL-Konstruktion enthält.

    Hauptmerkmale:

    • Nimmt eine Locale als ersten Parameter (erforderlich)
    • Optionales options-Objekt mit defaultLocale und mode
    • Gibt ein Objekt mit den Eigenschaften prefix und localePrefix zurück
    • Unterstützt alle Routing-Modi: prefix-no-default, prefix-all, no-prefix und search-params
    • Leichtgewichtige Utility zur Bestimmung, wann Locale-Präfixe hinzugefügt werden sollen

    Funktionssignatur

    getPrefix(
      locale: Locales,               // Erforderlich
      options?: {                    // Optional
        defaultLocale?: Locales;
        mode?: 'prefix-no-default' | 'prefix-all' | 'no-prefix' | 'search-params';
      }
    ): GetPrefixResult
    
    type GetPrefixResult = {
      prefix: string;   // z.B. 'fr/' oder ''
      localePrefix?: Locale; // z.B. 'fr' oder undefined
    }

    Parameter

    • locale: Locales

      • Beschreibung: Die Locale, für die das Präfix generiert werden soll. Wenn der Wert falsch ist (undefined, null, leerer String), gibt die Funktion einen leeren String zurück.
      • Typ: Locales
      • Erforderlich: Ja
    • options?: object

      • Beschreibung: Konfigurationsobjekt zur Bestimmung des Präfixes.
      • Typ: object
      • Erforderlich: Nein (Optional)

      • options.defaultLocale?: Locales

        • Beschreibung: Die Standard-Locale für die Anwendung. Wenn nicht angegeben, wird die konfigurierte Standard-Locale aus der Projektkonfiguration verwendet.
        • Typ: Locales
        • Standard: Projektkonfiguration
      • options.mode?: 'prefix-no-default' | 'prefix-all' | 'no-prefix' | 'search-params'

        • Beschreibung: Der URL-Routing-Modus für die Locale-Verarbeitung. Wenn nicht angegeben, wird der konfigurierte Modus aus Ihrer Projektkonfiguration verwendet.
        • Typ: 'prefix-no-default' | 'prefix-all' | 'no-prefix' | 'search-params'
        • Standard: Projektkonfiguration
        • Modi:
          • prefix-no-default: Gibt leere Strings zurück, wenn die Locale der Standard-Locale entspricht
          • prefix-all: Gibt für alle Locales, einschließlich der Standard-Locale, ein Präfix zurück
          • no-prefix: Gibt leere Strings zurück (kein Präfix in URLs)
          • search-params: Gibt leere Strings zurück (Locale in Abfrageparametern)

    Rückgabe

    • Typ: GetPrefixResult
    • Beschreibung: Ein Objekt, das drei verschiedene Präfix-Formate enthält:
      • prefix: Das Pfadpräfix mit abschließendem Schrägstrich (z.B. 'fr/', '')
      • localePrefix: Der Locale-Bezeichner ohne Schrägstriche (z.B. 'fr', undefined)

    Beispielanwendung

    Grundlegende Verwendung

    import { getPrefix, Locales } from "intlayer";
    
    // Präfix für die englische Locale prüfen
    getPrefix(Locales.ENGLISH, {
      defaultLocale: Locales.ENGLISH,
      mode: "prefix-all",
    });
    // Gibt zurück: { prefix: 'en/', localePrefix: 'en' }
    
    // Präfix für die französische Locale prüfen
    getPrefix(Locales.FRENCH, {
      defaultLocale: Locales.ENGLISH,
      mode: "prefix-no-default",
    });
    // Gibt zurück: { prefix: 'fr/', localePrefix: 'fr' }

    Verschiedene Routing-Modi

    import { getPrefix, Locales } from "intlayer";
    
    // prefix-all: Gibt immer ein Präfix zurück
    getPrefix(Locales.ENGLISH, {
      mode: "prefix-all",
      defaultLocale: Locales.ENGLISH,
    });
    // Gibt zurück: { prefix: '/en', localePrefix: 'en' }
    
    // prefix-no-default: Kein Präfix, wenn die Locale der Standard-Locale entspricht
    getPrefix(Locales.ENGLISH, {
      mode: "prefix-no-default",
      defaultLocale: Locales.ENGLISH,
    });
    // Gibt zurück: { prefix: '', localePrefix: undefined }
    
    // prefix-no-default: Gibt ein Präfix zurück, wenn die Locale von der Standard-Locale abweicht
    getPrefix(Locales.FRENCH, {
      mode: "prefix-no-default",
      defaultLocale: Locales.ENGLISH,
    });
    // Gibt zurück: { prefix: 'fr/', localePrefix: 'fr' }
    
    // no-prefix & search-params: Gibt niemals ein Präfix zurück
    getPrefix(Locales.ENGLISH, { mode: "no-prefix" });
    // Gibt zurück: { prefix: '', localePrefix: undefined }
    
    getPrefix(Locales.ENGLISH, { mode: "search-params" });
    // Gibt zurück: { prefix: '', localePrefix: undefined }

    Praktisches Beispiel

    import { getPrefix, Locales } from "intlayer";
    
    // URLs mit dem passenden Präfix für eine bestimmte Locale erstellen
    const locale = Locales.FRENCH;
    const { prefix, localePrefix } = getPrefix(locale, {
      defaultLocale: Locales.ENGLISH,
      mode: "prefix-no-default",
    });
    
    // Verwendung des Präfixes für die Pfadkonstruktion
    const url1 = `/${prefix}about`.replace(/\/+/g, "/");
    // Ergebnis: "/fr/about"
    
    // Verwendung von localePrefix zur Identifikation der Locale
    console.log(`Aktuelle Locale: ${localePrefix}`);
    // Ausgabe: "Aktuelle Locale: fr"

    Verwandte Funktionen


    TypeScript

    type GetPrefixResult = {
      prefix: string; // Das Pfadpräfix mit abschließendem Schrägstrich (z.B. 'fr/' oder '')
      localePrefix?: Locale; // Der Locale-Bezeichner ohne Schrägstriche (z.B. 'fr' oder undefined)
    };
    
    function getPrefix(
      locale: Locales,
      options?: {
        defaultLocale?: Locales;
        mode?: "prefix-no-default" | "prefix-all" | "no-prefix" | "search-params";
      }
    ): GetPrefixResult;