Stellen Sie Ihre Frage und erhalten Sie einen Resümee des Dokuments, indem Sie diese Seite und den AI-Anbieter Ihrer Wahl referenzieren
Versionshistorie
- "Init history"v8.8.04.5.2026
Der Inhalt dieser Seite wurde mit einer KI übersetzt.
Den englischen Originaltext ansehenIf 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
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
Tabelle in einem Modal öffnen, um alle Daten übersichtlich anzuzeigen
| 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.
Kopieren Sie den Code in die Zwischenablage
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 aufotherzurü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.
Kopieren Sie den Code in die Zwischenablage
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:
Kopieren Sie den Code in die Zwischenablage
totalOpenings(21); // Kurzform: nur AnzahltotalOpenings({ count: 21 }); // explizite FormBenutzerdefinierte Platzhalter
Plural-Zeichenfolgen können andere Platzhalter als {{count}} enthalten. Übergeben Sie diese in der Objektform zusammen mit count:
Kopieren Sie den Code in die Zwischenablage
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;Kopieren Sie den Code in die Zwischenablage
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:
Tabelle in einem Modal öffnen, um alle Daten übersichtlich anzuzeigen
| 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:
Kopieren Sie den Code in die Zwischenablage
totalOpenings: t({ en: plural({ one: "{{count}} opening", other: "{{count}} openings", }), fr: plural({ one: "{{count}} offre", other: "{{count}} offres", }), }),Ungültig:
Kopieren Sie den Code in die Zwischenablage
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:
- Dokumentation zur Aufzählung (Enumeration)
- Dokumentation zur Einfügung (Insertion)
- Intlayer CLI Dokumentation
- React Intlayer Dokumentation
- Next Intlayer Dokumentation
Diese Ressourcen bieten weitere Einblicke in die Einrichtung und Verwendung von Intlayer in verschiedenen Umgebungen und Frameworks.