Stellen Sie Ihre Frage und erhalten Sie einen Resümee des Dokuments, indem Sie diese Seite und den AI-Anbieter Ihrer Wahl referenzieren
Der Inhalt dieser Seite wurde mit einer KI übersetzt.
Den englischen Originaltext ansehenWenn Sie eine Idee haben, um diese Dokumentation zu verbessern, zögern Sie bitte nicht, durch das Einreichen eines Pull-Requests auf GitHub beizutragen.
GitHub-Link zur DokumentationMarkdown des Dokuments in die Zwischenablage kopieren
react-Intl VS react-i18next VS Intlayer
Dieser Leitfaden vergleicht drei etablierte i18n-Optionen für React: react-intl (FormatJS), react-i18next (i18next) und Intlayer. Wir konzentrieren uns auf reine React-Anwendungen (z. B. Vite, CRA, SPA). Wenn Sie Next.js verwenden, sehen Sie unseren speziellen Next.js-Vergleich.
Wir bewerten:
- Architektur & Inhaltsorganisation
- TypeScript & Sicherheit
- Umgang mit fehlenden Übersetzungen
- Umfangreiche Inhalts- & Formatierungsfunktionen
- Leistung & Ladeverhalten
- Entwicklererfahrung (DX), Tools & Wartung
- SEO/Routing (frameworkabhängig)
Kurzfassung: Alle drei können eine React-App lokalisieren. Wenn Sie komponentenbezogenen Inhalt, strenge TypeScript-Typen, Build-Zeit-Prüfungen auf fehlende Schlüssel, baumgeschüttelte Wörterbücher und integrierte redaktionelle Werkzeuge (Visueller Editor/CMS + optionale KI-Übersetzung) wünschen, ist Intlayer die vollständigste Wahl für modulare React-Codebasen.
Übergeordnete Positionierung
- react-intl - ICU-first, standardkonforme Formatierung (Datum/Zahlen/Pluralformen) mit einer ausgereiften API. Kataloge sind typischerweise zentralisiert; Schlüssel-Sicherheit und Build-Zeit-Validierung liegen größtenteils bei Ihnen.
- react-i18next - Extrem beliebt und flexibel; Namespaces, Detektoren und viele Plugins (ICU, Backends). Leistungsstark, aber die Konfiguration kann mit wachsendem Projektumfang umfangreich werden.
- Intlayer - Komponentenorientiertes Inhaltsmodell für React, strenge TS-Typisierung, Build-Zeit-Prüfungen, Tree-Shaking, plus Visueller Editor/CMS und KI-unterstützte Übersetzungen. Funktioniert mit React Router, Vite, CRA usw.
Um zu verstehen, woher diese Bibliotheken kommen, lesen Sie die Geschichte von i18n in JavaScript.
Funktionsmatrix (React-Fokus)
Tabelle in einem Modal öffnen, um alle Daten übersichtlich anzuzeigen
| Funktion | react-intlayer (Intlayer) | react-i18next (i18next) | react-intl (FormatJS) |
|---|---|---|---|
| Übersetzungen in der Nähe der Komponenten | ✅ Ja, Inhalte sind mit jeder Komponente zusammengefasst | ❌ Nein | ❌ Nein |
| TypeScript-Integration | ✅ Fortgeschritten, automatisch generierte strenge Typen | ⚠️ Grundlegend; zusätzliche Konfiguration für Sicherheit | ✅ Gut, aber weniger streng |
| Fehlende Übersetzungs-Erkennung | ✅ TypeScript-Fehlerhervorhebung und Build-Zeit Fehler/Warnung | ⚠️ Meistens Fallback-Strings zur Laufzeit | ⚠️ Fallback-Strings |
| Reicher Inhalt (JSX/Markdown/Komponenten) | ✅ Direkte Unterstützung | ⚠️ Eingeschränkt / nur Interpolation | ⚠️ ICU-Syntax, kein echtes JSX |
| KI-gestützte Übersetzung | ✅ Ja, unterstützt mehrere KI-Anbieter. Nutzbar mit eigenen API-Schlüsseln. Berücksichtigt den Kontext Ihrer Anwendung und den Umfang des Inhalts | ❌ Nein | ❌ Nein |
| Visueller Editor | ✅ Ja, lokaler visueller Editor + optionales CMS; kann Codebasis-Inhalte auslagern; einbettbar | ❌ Nein / verfügbar über externe Lokalisierungsplattformen | ❌ Nein / verfügbar über externe Lokalisierungsplattformen |
| Lokalisierte Routenführung | ✅ Ja, unterstützt lokalisierte Pfade direkt (funktioniert mit Next.js & Vite) | ⚠️ Nicht eingebaut, erfordert Plugins (z.B. next-i18next) oder benutzerdefinierte Router-Konfiguration | ❌ Nein, nur Nachrichtenformatierung, Routing muss manuell erfolgen |
| Dynamische Routen-Generierung | ✅ Ja | ⚠️ Plugin/Ökosystem oder manuelle Einrichtung | ❌ Nicht bereitgestellt |
| Pluralisierung | ✅ Aufzählungsbasierte Muster | ✅ Konfigurierbar (Plugins wie i18next-icu) | ✅ (ICU) |
| Formatierung (Daten, Zahlen, Währungen) | ✅ Optimierte Formatierer (Intl im Hintergrund) | ⚠️ Über Plugins oder benutzerdefinierte Intl-Nutzung | ✅ ICU-Formatierer |
| Inhaltsformat | ✅ .tsx, .ts, .js, .json, .md, .txt, (.yaml in Arbeit) | ⚠️ .json | ✅ .json, .js |
| ICU-Unterstützung | ⚠️ In Arbeit | ⚠️ Über Plugin (i18next-icu) | ✅ Ja |
| SEO-Helfer (hreflang, Sitemap) | ✅ Eingebaute Werkzeuge: Helfer für Sitemap, robots.txt, Metadaten | ⚠️ Community-Plugins / manuell | ❌ Nicht im Kern |
| Ökosystem / Community | ⚠️ Kleiner, aber schnell wachsend und reaktiv | ✅ Größte und ausgereifte | ✅ Groß |
| Server-seitiges Rendering & Server-Komponenten | ✅ Ja, optimiert für SSR / React Server-Komponenten | ⚠️ Unterstützt auf Seitenebene, aber t-Funktionen müssen im Komponentenbaum für untergeordnete Server-Komponenten übergeben werden | ❌ Nicht unterstützt, t-Funktionen müssen im Komponentenbaum für untergeordnete Server-Komponenten übergeben werden |
| Tree-shaking (nur genutzte Inhalte laden) | ✅ Ja, pro Komponente zur Build-Zeit über Babel/SWC-Plugins | ⚠️ Lädt normalerweise alles (kann mit Namespaces/Code-Splitting verbessert werden) | ⚠️ Lädt normalerweise alles |
| Lazy Loading | ✅ Ja, pro Sprache / pro Wörterbuch | ✅ Ja (z.B. Backends/Namespaces bei Bedarf) | ✅ Ja (aufgeteilte Sprachpakete) |
| Bereinigung ungenutzter Inhalte | ✅ Ja, pro Wörterbuch zur Build-Zeit | ❌ Nein, nur durch manuelle Namespace-Segmentierung | ❌ Nein, alle deklarierten Nachrichten werden gebündelt |
| Verwaltung großer Projekte | ✅ Fördert Modularität, geeignet für Design-Systeme | ⚠️ Benötigt gute Dateidisziplin | ⚠️ Zentrale Kataloge können sehr groß werden |
Tiefgehender Vergleich
1) Architektur & Skalierbarkeit
- react-intl / react-i18next: Die meisten Setups pflegen zentralisierte Sprachordner pro Sprache, manchmal aufgeteilt in Namespaces (i18next). Funktioniert anfangs gut, wird aber mit wachsender App zu einer gemeinsam genutzten Oberfläche.
- Intlayer: Fördert pro-Komponente (oder pro-Feature) Wörterbücher, die direkt neben der UI liegen, die sie bedienen. Dies sorgt für klare Verantwortlichkeiten, erleichtert die Duplizierung/Migration von Komponenten und reduziert den Schlüsselwechsel zwischen Teams. Unbenutzte Inhalte sind leichter zu erkennen und zu entfernen.
Warum das wichtig ist: Modularer Inhalt spiegelt modulare UI wider. Große React-Codebasen bleiben sauberer, wenn Übersetzungen bei den Komponenten leben, zu denen sie gehören.
2) TypeScript & Sicherheit
- react-intl: Solide Typisierung, aber keine automatische Schlüsseltypisierung; Sicherheitsmuster müssen selbst durchgesetzt werden.
- react-i18next: Starke Typisierung für Hooks; strikte Schlüsseltypisierung erfordert typischerweise zusätzliche Konfiguration oder Generatoren.
- Intlayer: Generiert automatisch strenge Typen aus Ihrem Inhalt. Die IDE-Autovervollständigung und Kompilierzeit-Fehler erkennen Tippfehler und fehlende Schlüssel vor der Laufzeit.
Warum das wichtig ist: Das Verschieben von Fehlern nach links (zum Build/CI) reduziert Produktionsprobleme und beschleunigt die Feedback-Schleifen für Entwickler.
3) Umgang mit fehlenden Übersetzungen
- react-intl / react-i18next: Standardmäßig Laufzeit-Fallbacks (Schlüssel-Echo oder Standardsprache). Sie können Linting/Plugins hinzufügen, aber es ist nicht garantiert, dass dies beim Build passiert.
- Intlayer: Build-Zeit-Erkennung mit Warnungen oder Fehlern, wenn erforderliche Sprachen/Schlüssel fehlen.
Warum das wichtig ist: Ein fehlschlagender CI-Prozess bei fehlenden Strings verhindert, dass „mysteriöses Englisch“ in nicht-englische UIs gelangt.
4) Reichhaltiger Inhalt & Formatierung
- react-intl: Hervorragende ICU-Unterstützung für Pluralformen, Auswahlmöglichkeiten, Datums-/Zahlenformate und Nachrichtenkomposition. JSX kann verwendet werden, aber das mentale Modell bleibt nachrichtenorientiert.
- react-i18next: Flexible Interpolation und
<Trans>zum Einbetten von Elementen/Komponenten; ICU ist über ein Plugin verfügbar. - Intlayer: Inhaltsdateien können reiche Knoten (JSX/Markdown/Komponenten) und Metadaten enthalten. Die Formatierung verwendet intern Intl; Pluralmuster sind ergonomisch.
Warum das wichtig ist: Komplexe UI-Texte (Links, fettgedruckte Teile, Inline-Komponenten) sind einfacher zu handhaben, wenn die Bibliothek React-Knoten sauber unterstützt.
5) Leistung & Ladeverhalten
- react-intl / react-i18next: Sie verwalten typischerweise Katalogaufteilung und Lazy Loading manuell (Namespaces/dynamische Importe). Effektiv, erfordert aber Disziplin.
- Intlayer: Entfernt ungenutzte Wörterbücher automatisch (Tree-shaking) und unterstützt Lazy Loading pro Wörterbuch/pro Sprache direkt out-of-the-box.
Warum das wichtig ist: Kleinere Bundles und weniger ungenutzte Strings verbessern die Start- und Navigationsleistung.
Das folgende Diagramm schätzt die Payload für eine theoretische App mit 1 bis 10 Seiten, übersetzt in 1 bis 10 Sprachen, mit etwa 30 KB Text pro Seite. Dynamisches Laden pro Locale entfernt die Sprachachse, das Scoping des Contents pro Komponente oder Route entfernt die Seitenachse, und nur die Kombination hält die Payload flach.

Benchmark-Ergebnisse für React (TanStack Start / Vite)
Zahlen aus Benchmark Bloom, das Standard-React-Implementierungen auf TanStack Start misst:
Metrik
Dynamisches JSON-Laden
Lädt Übersetzungen während der Laufzeit verzögert
Gescoptes JSON (Namespacing)
Übersetzungs-Namespaces pro Seite
Was ist diese Metrik?
Die gesamte gzip-komprimierte Größe des Internationalisierungs-Bibliothekspakets. Es enthält nur den Provider und die Inhaltsabruflogik nach Tree-Shaking und Minimierung.
Warum ist das wichtig?
Eine kleinere Bibliotheksgröße reduziert die anfängliche JavaScript-Nutzlast, was zu schnelleren Download- und Ausführungszeiten auf dem Client führt.
Ansehen als
Tabelle in einem Modal öffnen, um alle Daten übersichtlich anzuzeigen
| Library | Strategy | Lib size (gz) | Page JS avg (gz) | Locale leak | Page leak | Component avg (gz) | E2E reactivity | Hydration |
|---|---|---|---|---|---|---|---|---|
| base (no i18n) | - | 0.0 KB | 111.0 KB | 0.0% | 0.0% | 0.7 KB | 8.1 ms | 21.6 ms |
react-i18next | dynamic | 18.4 KB | 136.4 KB | 23.1% | 89.8% | 24.8 KB | 123.1 ms | 32.9 ms |
intlayer | dynamic | 5.0 KB | 118.6 KB | 0.0% | 0.0% | 6.3 KB | 3.6 ms | 14.1 ms |
Vollständige Tabelle im TanStack Start Benchmark-Bericht und in der i18n-Benchmark-Übersicht.
6) DX, Tooling & Wartung
- react-intl / react-i18next: Breites Community-Ökosystem; für redaktionelle Workflows verwendet man üblicherweise externe Lokalisierungsplattformen.
- Intlayer: Bietet einen kostenlosen Visual Editor und ein optionales CMS (Inhalte in Git behalten oder auslagern). Außerdem gibt es eine VSCode-Erweiterung für die Inhaltserstellung und KI-unterstützte Übersetzung mit eigenen Anbieter-Schlüsseln.
Warum das wichtig ist: Eingebaute Werkzeuge verkürzen den Kreislauf zwischen Entwicklern und Inhaltserstellern - weniger Klebecode, weniger Abhängigkeiten von Drittanbietern.
Wann welches wählen?
- Wählen Sie react-intl, wenn Sie eine ICU-first Nachrichtenformatierung mit einer einfachen, standardkonformen API wünschen und Ihr Team damit vertraut ist, Kataloge und Sicherheitsprüfungen manuell zu pflegen.
- Wählen Sie react-i18next, wenn Sie die Vielfalt des i18next-Ökosystems (Detektoren, Backends, ICU-Plugin, Integrationen) benötigen und mehr Konfiguration für mehr Flexibilität akzeptieren.
- Wählen Sie Intlayer, wenn Sie komponentenbezogenen Inhalt, striktes TypeScript, Build-Zeit-Garantien, Tree-Shaking und inklusive redaktionelle Werkzeuge schätzen – besonders für große, modulare React-Anwendungen.
Interoperabilität mit react-intl und react-i18next
intlayer kann dir auch dabei helfen, deine react-intl- und react-i18next-Namespaces zu verwalten.
Mit intlayer kannst du deine Inhalte im Format deiner bevorzugten i18n-Bibliothek deklarieren, und intlayer wird deine Namespaces am Ort deiner Wahl generieren (Beispiel: /messages/{{locale}}/{{namespace}}.json).
Weiterführende Links & Benchmarks
Benchmark-Berichte:
GitHub-Sterne
GitHub-Sterne sind ein starkes Indiz für die Popularität eines Projekts, das Vertrauen der Community und die langfristige Relevanz. Obwohl sie kein direktes Maß für die technische Qualität sind, spiegeln sie wider, wie viele Entwickler das Projekt nützlich finden, seinen Fortschritt verfolgen und es wahrscheinlich übernehmen werden. Zur Einschätzung des Werts eines Projekts helfen Sterne dabei, die Resonanz im Vergleich zu Alternativen zu vergleichen und Einblicke in das Wachstum des Ökosystems zu geben.
Commit-Aktivität
Sterne zeigen Popularität. Commits zeigen, wie viel Arbeit in einem Projekt steckt. Zum Zeitpunkt des Schreibens zählt Intlayer rund 7.500 Commits, mehr als die meisten hier verglichenen Bibliotheken und etwa 5-mal so viele wie next-intl oder next-i18next.
- formatjs/formatjs
- i18next/react-i18next
- aymericzip/intlayer
Commits auf dem Standard-Branch, Quelle: GitHub API.
Intlayer ist ein Monorepo: Die Zahl umfasst jedes Framework-Paket, die CLI und die Dokumentation. Commits sind ein Signal für Aktivität, nicht für Qualität.
npm-Downloads
- react-i18next
- react-intl
- react-intlayer
Quelle: Download-API der npm-Registry.
Downloads belohnen die ältesten Lösungen, nicht die besten. Eine vor Jahren veröffentlichte Bibliothek wird weiterhin von jedem Projekt installiert, das sie damals gewählt hat, von jedem CI-Lauf und von jedem Paket, das davon abhängt. Die Zahl misst Trägheit mehr als eine bewusste Wahl.
KI-Assistenten verstärken diesen Effekt. next-intl, i18next und vue-i18n sind im Code, mit dem sie trainiert wurden, allgegenwärtig, also schlagen sie diese standardmäßig vor, ohne Alternativen zu vergleichen. Jeder Vorschlag erzeugt Downloads, die den nächsten Vorschlag verstärken. Vergleichen Sie anhand des Benchmarks, nicht anhand der Downloadzahlen.
Fazit
Alle drei Bibliotheken lokalisieren React effektiv. Der Unterschied liegt darin, wie viel Infrastruktur Sie aufbauen müssen, um eine sichere, skalierbare Umgebung zu erreichen:
- Mit Intlayer sind modularer Inhalt, strikte TS-Typisierung, Build-Zeit-Sicherheit, baumgeschüttelte Bundles und redaktionelle Werkzeuge Standard - keine lästige Pflicht.
- Wenn Ihr Team Wartbarkeit und Geschwindigkeit in mehrsprachigen, komponentenbasierten React-Anwendungen schätzt, bietet Intlayer heute den vollständigsten Entwickler- und Inhaltsworkflow.
Weitere Details findest du im Dokument 'Warum Intlayer?'.
Kommentare
Noch keine Kommentare. Seien Sie der Erste, der seine Gedanken teilt.
