Können Knotentypen zusammengesetzt werden? (z. B. mehrere Plurale in einem Satz)
Ja, Knotentypen in Intlayer können zusammengesetzt werden. Beispielsweise können Sie ein plural() innerhalb eines anderen plural() verschachteln oder plural() mit insert() kombinieren.
Wenn Sie zwei unabhängige Pluralvariablen in einem einzigen Satz ausdrücken müssen (zum Beispiel: "1 Datei in 2 Ordnern" vs. "3 Dateien in 1 Ordner"), gibt es zwei Hauptansätze:
insert()mit separatenplural()-Schlüsseln verwenden (Empfohlen): Sauber, wartungsfreundlich und bewahrt die korrekte Wortstellung über verschiedene Sprachen hinweg.plural()inplural()verschachteln (Direkte Komposition): Gültige Syntax, kann jedoch bei Sprachen mit komplexen Pluralregeln zu einer kombinatorischen Explosion von Zweigen führen.
insert() mit plural() zusammensetzen
Das flexibelste und idiomatischste Muster besteht darin, einzelne plural-Schlüssel für jeden pluralisierten Begriff zu deklarieren und diese mithilfe einer insert()-Vorlage zu kombinieren.
1. Inhalt deklarieren
src/fileSummary.content.ts
Code kopieren
Kopieren Sie den Code in die Zwischenablage
import { insert, plural, t, type Dictionary } from "intlayer";
const fileSummaryContent = {
key: "file_summary",
content: {
// Die Insertionsvorlage definiert die Anordnung der Elemente pro Sprache
summary: t({
de: insert("{{files}} in {{folders}}"),
en: insert("{{files}} in {{folders}}"),
fr: insert("{{files}} dans {{folders}}"),
ja: insert("{{folders}}の中に{{files}}"), // Benutzerdefinierte Wortstellung für Japanisch
}),
files: t({
de: plural({
one: "{{count}} Datei",
other: "{{count}} Dateien",
}),
en: plural({
one: "{{count}} file",
other: "{{count}} files",
}),
fr: plural({
one: "{{count}} fichier",
other: "{{count}} fichiers",
}),
ja: plural({
other: "{{count}} 個のファイル",
}),
}),
folders: t({
de: plural({
one: "{{count}} Ordner",
other: "{{count}} Ordner",
}),
en: plural({
one: "{{count}} folder",
other: "{{count}} folders",
}),
fr: plural({
one: "{{count}} dossier",
other: "{{count}} dossiers",
}),
ja: plural({
other: "{{count}} 個のフォルダー",
}),
}),
},
} satisfies Dictionary;
export default fileSummaryContent;
2. In der Komponente verwenden
src/components/FileSummary.tsx
Code kopieren
Kopieren Sie den Code in die Zwischenablage
src/components/FileSummary.vue
Code kopieren
Kopieren Sie den Code in die Zwischenablage
src/components/FileSummary.svelte
Code kopieren
Kopieren Sie den Code in die Zwischenablage
Warum dies der empfohlene Ansatz ist
- Satzstruktur und Wortstellung: Verschiedene Sprachen platzieren Adjektive, Zahlen und Objekte in unterschiedlicher Reihenfolge (z. B. können Japanisch oder Deutsch die Reihenfolge von Dateien und Ordnern umkehren). Eine
insert()-Vorlage gibt Übersetzern die volle Kontrolle über die Wortstellung, ohne die Pluralregeln zu beeinflussen. - Verhindert kombinatorische Explosion: Wenn Sprache A 2 Pluralformen hat (Englisch:
one,other) und Sprache B 4 Formen hat (Russisch:one,few,many,other), erfordert das Verschachteln von Pluralen $4 \times 4 = 16$ Zweige für Russisch. Mit getrennten Schlüsseln deklarieren Sie nur $4 + 4 = 8$ Zweige. - Wiederverwendbarkeit: Sie können die Pluraldefinitionen für
filesoderfoldersin anderen Bereichen Ihrer Benutzeroberfläche wiederverwenden.