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.13.05.6.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
Migration von react-i18next / i18next zu Intlayer
Warum von react-i18next / i18next zu Intlayer migrieren?
Anstatt riesige JSON-Dateien in Ihre Seiten zu laden, laden Sie nur die benötigten Inhalte. Intlayer hilft Ihnen, die Größe Ihres Bundles und Ihrer Seiten um bis zu 50 % zu reduzieren.
Das Scopen Ihrer Anwendungsinhalte erleichtert die Wartung für große Anwendungen. Sie können einen ganzen Feature-Ordner duplizieren oder löschen, ohne den mentalen Aufwand betreiben zu müssen, Ihre gesamte Inhalts-Codebase zu überprüfen. Darüber hinaus ist Intlayer vollständig typisiert, um die Richtigkeit Ihrer Inhalte sicherzustellen.
Intlayer ist zudem die Lösung mit der aktivsten Entwicklung im i18n-Ökosystem — Probleme werden schnell behoben, neue Framework-Adapter kommen regelmäßig hinzu und die Kern-API wird kontinuierlich auf Basis echter Produktionserfahrungen verfeinert.
Die Kollokation von Inhalten reduziert den für Large Language Models (LLMs) erforderlichen Kontext. Intlayer verfügt außerdem über eine Reihe von Werkzeugen, wie eine CLI zum Testen fehlender Übersetzungen, LSP, MCP und Agenten-Fähigkeiten (Agent Skills), um die Entwicklererfahrung (DX) für KI-Agenten noch reibungsloser zu gestalten.
Nutzen Sie Automatisierung zur Übersetzung in Ihrer CI/CD-Pipeline unter Verwendung des LLM Ihrer Wahl zum Preis Ihres KI-Anbieters. Intlayer bietet auch einen Compiler zur Automatisierung der Inhaltsextraktion sowie eine Web-Plattform, die Übersetzungen im Hintergrund unterstützt.
Das Verknüpfen riesiger JSON-Dateien mit Komponenten kann zu Leistungs- und Reaktivitätsproblemen führen. Intlayer optimiert das Laden Ihrer Inhalte zur Build-Zeit.
Mehr als nur eine i18n-Lösung bietet Intlayer einen selbst gehosteten visuellen Editor und ein vollständiges CMS, das Ihnen hilft, Ihre mehrsprachigen Inhalte in Echtzeit zu verwalten. Dies ermöglicht eine nahtlose Zusammenarbeit mit Übersetzern, Textern und anderen Teammitgliedern. Die Inhalte können lokal und/oder remote gespeichert werden.
Migrationsstrategien
Es gibt zwei ergänzende Strategien für die Migration von react-i18next / i18next zu Intlayer:
Kompatibilitätsadapter (empfohlen für bestehende Apps) — Installieren Sie
@intlayer/react-i18next(für React-Komponenten) und/oder@intlayer/i18next(für die Kern-i18n-Instanz). Diese Pakete bieten genau dieselbe API wiereact-i18next/i18next, delegieren jedoch die gesamte Übersetzungsarbeit an Intlayer. Sie behalten Ihre bestehenden Aufrufe füruseTranslation,Trans,withTranslation,i18next.t()bei — die einzige Änderung ist der Importpfad.Vollständige Migration — Ersetzen Sie schrittweise
react-i18next-APIs durch native Intlayer-Hooks (useIntlayer,IntlayerProvider) und platzieren Sie Inhalte lokal in.content.ts-Dateien neben Ihren Komponenten.
Dieser Leitfaden behandelt zuerst Strategie 1 (schneller Kompatibilitätsadapter) und geht dann auf die optionale vollständige Migration ein.
Inhaltsverzeichnis
Schnelle Migration
Die folgenden Schritte sind das Minimum, das erforderlich ist, um Ihre bestehende react-i18next-App auf Intlayer laufen zu lassen, ohne Codeänderungen vornehmen zu müssen.
Abhängigkeiten installieren
Installieren Sie die Intlayer-Kernpakete und die Kompatibilitätsadapter:
bashCode kopierenKopieren Sie den Code in die Zwischenablage
npm install intlayer react-intlayer @intlayer/react-i18next @intlayer/i18next @intlayer/sync-json-pluginnpx intlayer initSie können
react-i18nextundi18nextinstalliert lassen — die Kompatibilitätsadapter verwenden sie als optionaledevDependencies/peerDependenciesfür TypeScript-Typen. Sie müssen keine Peers in derpackage.jsonändern.Intlayer konfigurieren
Der Befehl
intlayer initerstellt eine initiale Dateiintlayer.config.ts. Aktualisieren Sie sie so, dass sie Ihren bestehenden Locales (Sprachen) entspricht, und verweisen Sie dassyncJSON-Plugin auf Ihre Nachrichtendateien:intlayer.config.tsCode kopierenKopieren Sie den Code in die Zwischenablage
import { Locales, type IntlayerConfig } from "intlayer"; import { syncJSON } from "@intlayer/sync-json-plugin"; const config: IntlayerConfig = { internationalization: { locales: [ Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH, // Fügen Sie hier alle Ihre bestehenden Locales hinzu ], defaultLocale: Locales.ENGLISH, }, plugins: [ syncJSON({ // Entspricht der Platzhalter-Syntax von react-i18next: {{name}} format: "i18next", source: ({ locale }) => `./src/locales/${locale}.json`, location: "src/locales", }), ], }; export default config;sourceordnet ein Locale dem Dateipfad seiner JSON-Datei zu.locationgibt dem Intlayer-Watcher an, welcher Ordner auf Änderungen überwacht werden soll. Die Optionformat: 'i18next'stellt sicher, dass Platzhalter wie{{name}}korrekt verarbeitet werden.Das Intlayer-Plugin zu Ihrem Bundler hinzufügen
Kapseln Sie Ihre bestehende Bundler-Konfiguration mit dem Kompatibilitäts-Plugin. Dieses integriert das Kern-Intlayer-Plugin, verbindet die Inhaltsüberwachung und — entscheidend — injiziert Modul-Aliase, sodass Ihre bestehenden Aufrufe für
import … from 'react-i18next'(und'i18next') zur Build-Zeit nahtlos auf@intlayer/react-i18next/@intlayer/i18nextumgeleitet werden. Es sind keine Änderungen an den Quelldateien erforderlich.Für Vite:
vite.config.tsCode kopierenKopieren Sie den Code in die Zwischenablage
import { defineConfig } from "vite"; import react from "@vitejs/plugin-react"; import { reactI18nextVitePlugin } from "@intlayer/react-i18next/plugin"; export default defineConfig({ plugins: [react(), reactI18nextVitePlugin()], });reactI18nextVitePlugin()kapselt das Pluginintlayer()vonvite-intlayerund fügt automatisch die Aliase fürreact-i18next/i18nexthinzu. Wenn Sie das normaleintlayer()-Plugin vonvite-intlayerverwenden, werden die Wörterbücher zwar kompiliert, die Aliase jedoch nicht hinzugefügt — dann müssten Sie Importe manuell in@intlayer/*umbenennen (siehe Schritt 4).Für Next.js:
Wenn Sie
next-i18next(Pages Router-Integration) verwenden, installieren Sie@intlayer/next-i18nextundnext-intlayer:bashCode kopierenKopieren Sie den Code in die Zwischenablage
npm install @intlayer/next-i18next next-intlayerFügen Sie dann das Kompatibilitäts-Plugin zu Ihrer
next.config.tshinzu (es injiziert die Aliase fürnext-i18next/react-i18next/i18next):next.config.tsCode kopierenKopieren Sie den Code in die Zwischenablage
import type { NextConfig } from "next"; import { createNextI18nPlugin } from "@intlayer/next-i18next/plugin"; const withIntlayer = createNextI18nPlugin(); const nextConfig: NextConfig = { /* Ihre Optionen */ }; export default withIntlayer(nextConfig);Sie benötigen
i18next.init()oder manuelles Provider-Bootstrapping nicht mehr. Intlayer kompiliert alle Wörterbücher zur Build-Zeit, daher entfällt das Laden zur Laufzeit. Der aliasierte Provider übernimmt die Initialisierung für Sie.
Das war's für die schnelle Migration. Ihre App läuft nun auf Intlayer, während alle Importe und react-i18next-APIs intakt bleiben.
Typisierte Übersetzungsschlüssel — automatisch. Sobald Intlayer Ihre Wörterbücher kompiliert hat, sind
useTranslationundgetFixedTtypisiert gegen Ihre tatsächlichen Inhalte. Die Schlüssel werden in Ihrer IDE autovervollständigt und ungültige Pfade führen zu TypeScript-Fehlern zur Build-Zeit — ohne zusätzliche Konfiguration.tsxCode kopierenKopieren Sie den Code in die Zwischenablage
// 'about' ist ein registrierter Dictionary-Schlüssel → t() akzeptiert nur gültige Pfadeconst { t } = useTranslation("about");t("counter.label"); // ✓ autovervollständigtt("does.not.exist"); // ✗ TypeScript-Fehler// Serverseite (i18next Instanz)const tAbout = i18n.getFixedT(null, "about");tAbout("counter.label"); // ✓ typisiert
Vollständige Migration
Die folgenden Schritte sind optional und können inkrementell durchgeführt werden. Sie schalten die volle Funktionalität von Intlayer frei: visueller Editor, CMS, typisierte Inhaltsdateien, KI-gestützte Übersetzung und mehr.
Importe explizit umbenennen (Optional)
OptionalDie Intlayer-Plugins kümmern sich bereits um das Aliasing auf Bundler-Ebene. Wenn Sie die Abhängigkeit in Ihren Quelldateien explizit machen möchten, können Sie die Importe manuell umbenennen:
Alle Tabellendaten anzeigenTabelle in einem Modal öffnen, um alle Daten übersichtlich anzuzeigen
Vorher Nachher import { useTranslation } from 'react-i18next'import { useTranslation } from '@intlayer/react-i18next'import { Trans } from 'react-i18next'import { Trans } from '@intlayer/react-i18next'import { withTranslation } from 'react-i18next'import { withTranslation } from '@intlayer/react-i18next'import { I18nextProvider } from 'react-i18next'import { I18nextProvider } from '@intlayer/react-i18next'import { initReactI18next } from 'react-i18next'import { initReactI18next } from '@intlayer/react-i18next'import i18next from 'i18next'import i18next from '@intlayer/i18next'import { createInstance } from 'i18next'import { createInstance } from '@intlayer/i18next'import { t } from 'i18next'import { t } from '@intlayer/i18next'Für Next.js (
next-i18next):Alle Tabellendaten anzeigenTabelle in einem Modal öffnen, um alle Daten übersichtlich anzuzeigen
Vorher Nachher import { serverSideTranslations } from 'next-i18next/serverSideTranslations'import { serverSideTranslations } from '@intlayer/next-i18next'import { appWithTranslation } from 'next-i18next'import { appWithTranslation } from '@intlayer/next-i18next'import { useTranslation } from 'next-i18next'import { useTranslation } from '@intlayer/next-i18next'Aktivieren der KI-gestützten Übersetzungsautomatisierung
OptionalSobald Intlayer konfiguriert ist, können Sie die CLI verwenden, um fehlende Übersetzungen automatisch aufzufüllen:
bashCode kopierenKopieren Sie den Code in die Zwischenablage
# Fehlende Übersetzungen testen (zu CI hinzufügen)npx intlayer test# Fehlende Übersetzungen mit KI auffüllennpx intlayer fillFügen Sie die KI-Konfiguration zu
intlayer.config.tshinzu:intlayer.config.tsCode kopierenKopieren Sie den Code in die Zwischenablage
import { Locales, type IntlayerConfig } from "intlayer"; import { syncJSON } from "@intlayer/sync-json-plugin"; const config: IntlayerConfig = { internationalization: { locales: [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH], defaultLocale: Locales.ENGLISH, }, plugins: [ syncJSON({ format: "i18next", source: ({ locale }) => `./src/locales/${locale}.json`, location: "src/locales", }), ], ai: { apiKey: process.env.OPENAI_API_KEY, // provider: "openai", // default // model: "gpt-4o-mini", // default }, }; export default config;Sehen Sie sich die Intlayer CLI-Dokumentation an, um alle verfügbaren Optionen zu erkunden.
Was Sie nach der Migration löschen können
Sobald die Kompatibilitätsadapter vorhanden sind, kann der folgende Standard-react-i18next / i18next-Code gelöscht werden:
Tabelle in einem Modal öffnen, um alle Daten übersichtlich anzuzeigen
| Datei / Muster | Warum er nicht mehr benötigt wird |
|---|---|
Aufrufe von i18next.init() | Der Intlayer-Provider initialisiert alles automatisch; es gibt keinen Ladeschritt zur Laufzeit. |
I18nextProvider / initReactI18next | Das Intlayer-Plugin verarbeitet Injection und Bootstrapping intern. |
JSON-Sprachpakete (locales/*.json) | JSON-Pakete werden nur benötigt, wenn Sie weiterhin das syncJSON-Plugin verwenden. Sobald Sie zu .content.ts-Dateien migrieren, können Sie den JSON-Ordner löschen. |
Wenn Sie bereit sind, weiterzugehen, erkennt Intlayer automatisch alle .content.ts- und .content.json-Dateien überall in Ihrer Codebasis (standardmäßig überall innerhalb von ./src). Sie können eine Datei my-component.content.ts direkt neben Ihrer MyComponent.tsx platzieren, und Intlayer wird sie zur Build-Zeit ohne zusätzliche Konfiguration erkennen — keine Importe, keine Registrierung, keine zentrale Index-Datei erforderlich. Dies macht die Kollokation von Übersetzungen mit Seiten und Komponenten völlig nahtlos.
TypeScript einrichten
Intlayer nutzt Modul-Erweiterungen, um volles TypeScript-Intellisense für Ihre Übersetzungsschlüssel bereitzustellen. Stellen Sie sicher, dass Ihre tsconfig.json die automatisch generierten Typen enthält:
Kopieren Sie den Code in die Zwischenablage
{ // ... Ihre bestehenden TypeScript-Konfigurationen "include": [ // ... Ihre bestehenden TypeScript-Konfigurationen ".intlayer/**/*.ts", // Fügen Sie die automatisch generierten Typen hinzu ],}Git-Konfiguration
Fügen Sie das von Intlayer generierte Verzeichnis zu Ihrer .gitignore hinzu:
Kopieren Sie den Code in die Zwischenablage
# Intlayer-generierte Dateien ignorieren.intlayerWeiterführende Themen
- Visueller Editor — Verwalten Sie Übersetzungen visuell in Ihrem Browser: Intlayer Visual Editor
- CMS — Externalisieren und verwalten Sie Inhalte remote: Intlayer CMS
- VS Code-Erweiterung — Erhalten Sie Autovervollständigung und Fehlererkennung für Übersetzungen in Echtzeit: Intlayer VS Code Extension
- CLI-Referenz — Vollständige Liste der CLI-Befehle: Intlayer CLI
- Intlayer mit React — Vollständige Einrichtungsanleitung für React: intlayerwithvite+react.md
- Intlayer mit Next.js — Vollständige Einrichtungsanleitung für Next.js: intlayerwithnextjs_16.md