|Labs
Demo buchenPlattform
React (Lingo Compiler)
Alpha
React (MCP)React (i18n)Legacy CLI (v0)
Veraltet

Lingo.dev Compiler

  • So funktioniert's
  • Einrichtung
  • Compiler – Erste Schritte

Frameworks

  • Next.js-Integration
  • Vite + React

Leitfäden

  • Sprache wechseln
  • Automatische Pluralisierung
  • Manuelle Überschreibungen
  • Build-Modi
  • Projektstruktur
  • Übersetzungsanbieter
  • Benutzerdefinierte Sprache-Resolver
  • Entwicklungstools

Referenz

  • Best Practices
  • Konfigurationsreferenz
  • Fehlerbehebung
  • Migrationsleitfaden
  • Optimierung
  • Ausgabeformate

Automatische Pluralisierung

Alpha

Der Lingo.dev Compiler befindet sich in der Alpha-Phase. Er ist instabil, nicht für den Produktionseinsatz geeignet, und APIs können sich zwischen Releases ändern.

Der Lingo.dev Compiler erkennt Pluralformen in deinem JSX-Text und wandelt sie automatisch in ICU MessageFormat um. Statt Pluralregeln für jede Sprache manuell zu schreiben, formulierst du natürlichen Text mit Zahlenwerten, und der Compiler erzeugt mithilfe eines LLM die passenden Pluralformen.

So funktioniert's#

1

Compiler erkennt numerische Muster

Während der AST-Analyse identifiziert der Compiler Textknoten, die interpolierte Zahlen zusammen mit mengenabhängigen Wörtern enthalten. Zum Beispiel enthält You have {count} items eine numerische Variable neben einem Wort, das sich je nach Anzahl verändert.

2

LLM klassifiziert Pluralformen

Ein kleines, schnelles LLM (konfigurierbar über pluralization.model) analysiert den Text und bestimmt, welche Wörter eine Pluralform benötigen. Es erzeugt die passenden CLDR-Pluralkategorien für jede Zielsprache.

3

ICU MessageFormat wird erzeugt

Der Compiler erzeugt einen ICU-MessageFormat-String, der alle für die Zielsprache erforderlichen Pluralkategorien abdeckt.

Beispiel#

JSX-Quelle:

tsx
<p>You have {count} items in your cart</p>

Generierte Ausgabe für Englisch:

text
{count, plural, one {You have 1 item in your cart} other {You have # items in your cart}}

Generierte Ausgabe für Russisch (mit vier Pluralkategorien):

text
{count, plural, one {У вас # товар в корзине} few {У вас # товара в корзине} many {У вас # товаров в корзине} other {У вас # товаров в корзине}}

CLDR-Pluralkategorien#

Verschiedene Sprachen verwenden unterschiedliche Teilmengen der sechs CLDR-Pluralkategorien. Der Compiler erzeugt nur die Kategorien, die für die jeweilige Zielsprache erforderlich sind:

KategorieBeschreibungBeispielsprachen
zeroNullmengeArabisch, Lettisch
oneSingularEnglisch, Französisch, Deutsch, Spanisch
twoDualArabisch, Hebräisch, Slowenisch
fewPaukal / kleine MengeRussisch, Tschechisch, Polnisch
manyGroße MengeRussisch, Arabisch, Polnisch
otherAllgemein / Standard (immer erforderlich)Alle Sprachen

Englisch verwendet one und other. Russisch verwendet one, few, many und other. Arabisch verwendet alle sechs Kategorien. Der Compiler übernimmt das automatisch für jede Sprache.

Konfiguration#

Die Pluralisierung ist standardmäßig aktiviert. Du kannst sie in den Compiler-Optionen konfigurieren:

ts
{
  pluralization: {
    enabled: true,
    model: "groq:llama-3.1-8b-instant",
  },
}
OptionTypStandardBeschreibung
pluralization.enabledbooleantrueAutomatische Pluralerkennung aktivieren oder deaktivieren.
pluralization.modelstring"groq:llama-3.1-8b-instant"LLM-Modell zur Erkennung von Pluralformen. Ein kleineres Modell reicht aus, da die Erkennung einfacher ist als die Übersetzung.

So deaktivierst du die Pluralisierung vollständig:

ts
{
  pluralization: {
    enabled: false,
  },
}

Wenn du die Pluralisierung deaktivierst, übersetzt der Compiler Texte mit Zahlen als einfache Strings. In Sprachen mit komplexen Pluralregeln ist die übersetzte Ausgabe dann möglicherweise nicht für alle Mengen grammatikalisch korrekt.

Wann Pluralisierung greift#

Der Compiler erkennt Pluralmuster in folgenden Fällen:

  • Text mit interpolierten numerischen Variablen: {count} items, {n} messages
  • Text mit numerischen Literalen: You have 5 items (weniger häufig in dynamischen UIs)

Der Compiler pluralisiert nicht:

  • Text ohne numerischen Bezug: Items in cart (keine Zahl, anhand derer verzweigt werden kann)
  • Text, bei dem die Zahl nicht direkt mit einem mengenabhängigen Wort zusammenhängt

Schreibe natürlichen Text in dein JSX. Der Compiler und sein LLM übernehmen die Pluralerkennung und ICU-Formatierung – du musst die Syntax von ICU MessageFormat nicht lernen.

Nächste Schritte#

Konfigurationsreferenz
Alle Optionen für die Pluralisierung
Übersetzungsanbieter
Konfiguriere das LLM, das für die Übersetzung verwendet wird
Manuelle Überschreibungen
Bestimmte Übersetzungen bei Bedarf überschreiben
Best Practices
Wann du die Pluralisierung aktivieren oder deaktivieren solltest

War diese Seite hilfreich?

Max PrilutskiyMax Prilutskiy·Aktualisiert vor 4 Monaten·3 Min. Lesezeit