Creation:2026-05-04Last update:2026-05-04

    Pluralinhalt / Plural in Intlayer

    Wie Plural funktioniert

    In Intlayer wird Pluralinhalt über die Funktion plural realisiert, die CLDR-Pluralkategorien – zero, one, two, few, many, other – den entsprechenden Inhalten zuordnet. Die richtige Kategorie wird automatisch basierend auf dem aktiven Gebietsschema (Locale) und einem Zählwert ausgewählt, wobei die in die Plattform integrierte Intl.PluralRules-API verwendet wird.

    Im Gegensatz zu enu, das Inhalte basierend auf von Ihnen selbst definierten numerischen Bereichen auswählt, delegiert plural die Auswahl an CLDR-Regeln. Dies macht es skalierbar für Sprachen mit komplexen Pluralisierungsregeln – wie Russisch, Polnisch, Arabisch oder Walisisch –, ohne dass Sie Modulo-Logik von Hand schreiben müssen.

    Wann man plural vs enu verwendet

    Anwendungsfall Helfer
    Sprachabhängige grammatikalische Pluralformen (ein Apfel / zwei Äpfel / 5 Äpfel) plural
    Benutzerdefinierte numerische Bereiche (<5, >=10) oder Nicht-CLDR-Kategorien enu

    Wenn Sie nur Englisch oder Deutsch ansprechen (die nur one / other haben), funktioniert beides. Für jede Sprache mit few / many / two-Unterscheidungen sollten Sie plural bevorzugen.

    Pluralinhalt einrichten

    Um Pluralinhalt in Ihrem Intlayer-Projekt einzurichten, erstellen Sie ein Inhaltsmodul, das den plural-Helfer verwendet. Die Kategorie other ist erforderlich und wird als Fallback verwendet, wenn ein Gebietsschema keine spezifischere Kategorie definiert.

    **/*.content.ts
    import { plural, t, type Dictionary } from "intlayer";
    
    const openingsContent = {
      key: "total_openings",
      content: {
        totalOpenings: t({
          en: plural({
            one: "{{count}} opening",
            other: "{{count}} openings",
          }),
          de: plural({
            one: "{{count}} Stelle",
            other: "{{count}} Stellen",
          }),
        }),
      },
    } satisfies Dictionary;
    
    export default openingsContent;

    Die unterstützten Kategorien sind zero, one, two, few, many, other. Sie müssen nur die Kategorien deklarieren, die Ihre Zielsprache verwendet – Intlayer fällt auf other zurück, wenn keine spezifische Kategorie passt.

    Der Platzhalter {{count}} wird automatisch durch die Anzahl ersetzt, die Sie zur Laufzeit übergeben. Sie können auch andere Platzhalter einschließen (siehe Benutzerdefinierte Platzhalter unten).

    Pluralinhalt mit React Intlayer verwenden

    Um Pluralinhalt in einer React-Komponente zu verwenden, rufen Sie ihn über den Hook useIntlayer ab und rufen Sie ihn mit einer Anzahl auf. Das aktive Gebietsschema und die Anzahl werden kombiniert, um die passende CLDR-Kategorie auszuwählen.

    **/*.tsx
    import type { FC } from "react";
    import { useIntlayer } from "react-intlayer";
    
    const OpeningsComponent: FC<{ count: number }> = ({ count }) => {
      const { totalOpenings } = useIntlayer("total_openings");
    
      return (
        <div>
          {/* Auf Englisch:                                  */}
          {/*  count=0  → "0 openings"   (other)           */}
          {/*  count=1  → "1 opening"    (one)             */}
          {/*  count=2  → "2 openings"   (other)           */}
          {/*  count=21 → "21 openings"  (other)           */}
          <p>{totalOpenings(count)}</p>
        </div>
      );
    };
    
    export default OpeningsComponent;

    Sie können die zurückgegebene Funktion auf zwei äquivalente Arten aufrufen:

    tsx
    totalOpenings(21); // Kurzform: nur AnzahltotalOpenings({ count: 21 }); // explizite Form

    Benutzerdefinierte Platzhalter

    Plural-Zeichenfolgen können andere Platzhalter als {{count}} enthalten. Übergeben Sie diese in der Objektform zusammen mit count:

    **/*.content.ts
    import { plural, type Dictionary } from "intlayer";
    
    const inboxContent = {
      key: "inbox_summary",
      content: {
        summary: plural({
          one: "{{name}}, du hast {{count}} neue Nachricht",
          other: "{{name}}, du hast {{count}} neue Nachrichten",
        }),
      },
    } satisfies Dictionary;
    
    export default inboxContent;
    **/*.tsx
    const { summary } = useIntlayer("inbox_summary");
    
    summary({ count: 1, name: "Alice" });
    // → "Alice, du hast 1 neue Nachricht"
    
    summary({ count: 7, name: "Alice" });
    // → "Alice, du hast 7 neue Nachrichten"

    CLDR-Kategorien auf einen Blick

    Verschiedene Sprachen verwenden unterschiedliche Teilmengen der CLDR-Kategorien. Einige häufige Fälle:

    Sprache Verwendete Kategorien
    Englisch (en) one, other
    Französisch (fr) one, many, other
    Russisch (ru) one, few, many, other
    Polnisch (pl) one, few, many, other
    Arabisch (ar) zero, one, two, few, many, other
    Japanisch / Chinesisch nur other

    Sie müssen sich das nicht merken – deklarieren Sie die Kategorien, für die Sie Übersetzungen haben, und Intlayer wird bei Bedarf auf other zurückgreifen.

    Einschränkung

    Im Gegensatz zu anderen Knoten kann der plural-Knoten noch nicht mit untergeordneten Knoten verschachtelt werden.

    Beispiel:

    Gültig:

    ts
        totalOpenings: t({      en: plural({        one: "{{count}} opening",        other: "{{count}} openings",      }),      fr: plural({        one: "{{count}} offre",        other: "{{count}} offres",      }),    }),

    Ungültig:

    ts
    totalOpenings: plural({  one: t({    en: "{{count}} opening",    fr: "{{count}} offre",  }),  other: t({    en: "{{count}} openings",    fr: "{{count}} offres",  }),}),

    Zusätzliche Ressourcen

    Weitere detaillierte Informationen zur Konfiguration und Verwendung finden Sie in den folgenden Ressourcen:

    Diese Ressourcen bieten weitere Einblicke in die Einrichtung und Verwendung von Intlayer in verschiedenen Umgebungen und Frameworks.