Stellen Sie Ihre Frage und erhalten Sie einen Resümee des Dokuments, indem Sie diese Seite und den AI-Anbieter Ihrer Wahl referenzieren
Versionshistorie
- "Aktualisieren der Solid useIntlayer API-Nutzung auf direkten Eigenschaftszugriff"v8.9.04.5.2026
- "Init-Befehl hinzufügen"v7.5.930.12.2025
- "Layout aktualisieren und 404 behandeln"v7.5.627.12.2025
- "Dokumentation aktualisiert"v6.1.53.10.2025
- "Hinzugefügt für React Router v7"v5.8.24.9.2025
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
Übersetzen Sie Ihre React Router v7-Website mit Intlayer | Internationalisierung (i18n)
Diese Anleitung zeigt, wie Sie Intlayer für nahtlose Internationalisierung in React Router v7-Projekten mit lokalisierungsbewusstem Routing, TypeScript-Unterstützung und modernen Entwicklungsmethoden integrieren.
Es umfasst sowohl konfigurationsbasiertes Routing (routes.ts) als auch dateisystembasiertes Routing (@react-router/fs-routes).
Inhaltsverzeichnis
Warum Intlayer gegenüber Alternativen?
Im Vergleich zu Hauptlösungen wie react-i18next oder i18next ist Intlayer eine Lösung, die über integrierte Optimierungen verfügt wie:
Intlayer ist für die perfekte Zusammenarbeit mit React Router optimiert, indem es locale-aware Routing, Middleware zur Locale-Erkennung und alle Funktionen bietet, die für die Skalierung der Internationalisierung (i18n) erforderlich sind.
Anstatt riesige JSON-Dateien in Ihre Seiten zu laden, laden Sie nur den erforderlichen Inhalt. Intlayer hilft Ihre Bundle- und Seitengröße um bis zu 50 % zu reduzieren.
Durch die Festlegung des Inhaltsbereichs Ihrer Anwendung wird die Wartung für umfangreiche Anwendungen erleichtert. Sie können einen einzelnen Feature-Ordner duplizieren oder löschen, ohne die mentale Belastung durch die Überprüfung Ihrer gesamten Inhaltscodebasis auf sich nehmen zu müssen. Darüber hinaus ist Intlayer vollständig typisiert (fully typed), um die Genauigkeit Ihrer Inhalte sicherzustellen.
Durch die gemeinsame Platzierung von Inhalten reduziert sich der von Large Language Models (LLMs) benötigte Kontext. Intlayer verfügt außerdem über eine Reihe von Tools, wie zum Beispiel eine CLI zum Testen auf fehlende Übersetzungen,LSP, MCP und agent skills, um die Entwicklererfahrung (DX) für KI-Agenten noch reibungsloser zu gestalten.
Nutzen Sie die Automatisierung, um Ihre CI/CD-Pipeline mit dem LLM Ihrer Wahl auf Kosten Ihres KI-Anbieters zu übersetzen. Intlayer bietet außerdem einen Compiler zur Automatisierung der Inhaltsextraktion sowie eine Webplattform zur Unterstützung der Übersetzung im Hintergrund.
Das Verbinden großer JSON-Dateien mit Komponenten kann zu Leistungs- und Reaktivitätsproblemen führen. Intlayer optimiert das Laden Ihrer Inhalte zur Erstellungszeit.
Intlayer ist mehr als nur eine i18n-Lösung. Es bietet einen selbstgehosteten visuellen Editor und ein vollständiges CMS, um Ihnen zu helfen Ihre mehrsprachigen Inhalte in Echtzeit zu verwalten und gestalten Sie die Zusammenarbeit mit Übersetzern, Textern und anderen Teammitgliedern reibungslos. Inhalte können lokal und/oder remote gespeichert werden.
Schritt-für-Schritt-Anleitung zur Einrichtung von Intlayer in einer React Router v7-Anwendung
Siehe das Konfigurationsbasierte Routing-Template oder das Dateisystem-Routen-Template auf GitHub.
Abhängigkeiten installieren
Installieren Sie die notwendigen Pakete mit Ihrem bevorzugten Paketmanager:
bashCode kopierenKopieren Sie den Code in die Zwischenablage
Das Flag
--interactiveist optional. Verwenden Sieintlayer-cli init, wenn Sie ein KI-Agent sind.Dieser Befehl erkennt Ihre Umgebung und installiert die erforderlichen Pakete. Zum Beispiel:
bashCode kopierenKopieren Sie den Code in die Zwischenablage
intlayer
Das Kernpaket, das Internationalisierungswerkzeuge für Konfigurationsmanagement, Übersetzung, Inhaltsdeklaration, Transpilierung und CLI-Befehle bereitstellt.
react-intlayer Das Paket, das Intlayer in React-Anwendungen integriert. Es stellt Kontext-Provider und Hooks für die Internationalisierung in React bereit.
vite-intlayer Enthält das Vite-Plugin zur Integration von Intlayer mit dem Vite-Bundler sowie Middleware zur Erkennung der bevorzugten Sprache des Benutzers, Verwaltung von Cookies und Handhabung von URL-Weiterleitungen.
Konfiguration Ihres Projekts
Erstellen Sie eine Konfigurationsdatei, um die Sprachen Ihrer Anwendung zu konfigurieren:
intlayer.config.tsCode kopierenKopieren Sie den Code in die Zwischenablage
import { type IntlayerConfig, Locales } from "intlayer"; const config: IntlayerConfig = { internationalization: { defaultLocale: Locales.ENGLISH, locales: [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH], }, }; export default config;Über diese Konfigurationsdatei können Sie lokalisierte URLs, Middleware-Weiterleitungen, Cookie-Namen, den Speicherort und die Erweiterung Ihrer Inhaltsdeklarationen einstellen, Intlayer-Logs in der Konsole deaktivieren und vieles mehr. Für eine vollständige Liste der verfügbaren Parameter lesen Sie bitte die Konfigurationsdokumentation.
Integrieren Sie Intlayer in Ihre Vite-Konfiguration
Fügen Sie das Intlayer-Plugin in Ihre Konfiguration ein:
vite.config.tsCode kopierenKopieren Sie den Code in die Zwischenablage
Das
intlayer()Vite-Plugin wird verwendet, um Intlayer mit Vite zu integrieren. Es sorgt für den Aufbau der Inhaltsdeklarationsdateien und überwacht diese im Entwicklungsmodus. Es definiert Intlayer-Umgebungsvariablen innerhalb der Vite-Anwendung. Zusätzlich stellt es Aliase bereit, um die Leistung zu optimieren.Konfigurieren der React Router v7 Routen
Richten Sie Ihre Routing-Konfiguration mit sprachsensitiven Routen ein:
app/routes.tsCode kopierenKopieren Sie den Code in die Zwischenablage
Richten Sie Ihre Routing-Konfiguration so ein, dass dateisystembasierte Routen mit
flatRoutesverwendet werden:app/routes.tsCode kopierenKopieren Sie den Code in die Zwischenablage
Die Funktion
flatRoutesvon@react-router/fs-routesermöglicht dateisystembasiertes Routing, bei dem die Dateistruktur im Verzeichnisroutes/die Routen Ihrer Anwendung bestimmt. Die OptionignoredRouteFilesstellt sicher, dass Intlayer-Inhaltsdeklarationsdateien (.content.tsusw.) nicht als Routendateien behandelt werden.Layout-Komponenten erstellen
Richten Sie Ihr Root-Layout und sprachspezifische Layouts ein:
Root-Layout
app/root.tsxCode kopierenKopieren Sie den Code in die Zwischenablage
Deklarieren Sie Ihre Inhalte
Erstellen und verwalten Sie Ihre Inhaltsdeklarationen, um Übersetzungen zu speichern:
app/routes/page.content.tsCode kopierenKopieren Sie den Code in die Zwischenablage
Ihre Inhaltsdeklarationen können überall in Ihrer Anwendung definiert werden, sobald sie in das Verzeichnis
contentDiraufgenommen werden (standardmäßig./app). Und sie müssen der Dateierweiterung für Inhaltsdeklarationen entsprechen (standardmäßig.content.{json,ts,tsx,js,jsx,mjs,cjs,md,mdx,yaml,yml}).Kann bei Verwendung von dateisystembasiertem Routing in
app/routes/($locale)._index.content.tsplatziert werden.Für weitere Details siehe die Dokumentation zur Inhaltsdeklaration.
Erstellen Sie locale-bewusste Komponenten
Erstellen Sie eine
LocalizedLink-Komponente für locale-bewusste Navigation:app/components/localized-link.tsxCode kopierenKopieren Sie den Code in die Zwischenablage
Falls Sie zu den lokalisierten Routen navigieren möchten, können Sie den
useLocalizedNavigateHook verwenden:app/hooks/useLocalizedNavigate.tsCode kopierenKopieren Sie den Code in die Zwischenablage
Verwenden Sie Intlayer in Ihren Seiten
Greifen Sie in Ihrer gesamten Anwendung auf Ihre Inhaltswörterbücher zu:
Lokalisierte Startseite
app/routes/page.tsxCode kopierenKopieren Sie den Code in die Zwischenablage
app/routes/($locale)._index.tsxCode kopierenKopieren Sie den Code in die Zwischenablage
Weitere Informationen zum
useIntlayerHook finden Sie in der Dokumentation.Falls Ihre App bereits vorhanden ist, können Sie den Intlayer Compiler sowie den extract-Befehl verwenden, um Tausende von Komponenten in einer Sekunde zu transformieren.
Erstellen Sie eine Locale-Switcher-Komponente
Erstellen Sie eine Komponente, um Benutzern den Sprachwechsel zu ermöglichen:
app/components/locale-switcher.tsxCode kopierenKopieren Sie den Code in die Zwischenablage
app/components/locale-switcher.tsxCode kopierenKopieren Sie den Code in die Zwischenablage
Weitere Informationen zum
useLocaleHook finden Sie in der Dokumentation.HTML-Attribute-Verwaltung hinzufügen
Erstellen Sie einen Hook zur Verwaltung von HTML lang- und dir-Attributen:
app/hooks/useI18nHTMLAttributes.tsxCode kopierenKopieren Sie den Code in die Zwischenablage
Verwenden Sie es dann in Ihrer Root-Komponente:
app/routes/layout.tsxCode kopierenKopieren Sie den Code in die Zwischenablage
Middleware hinzufügen
Sie können auch
intlayerProxyverwenden, um Server-seitiges Routing zu Ihrer Anwendung hinzuzufügen. Dieses Plugin erkennt automatisch die aktuelle Locale basierend auf der URL und setzt das entsprechende Locale-Cookie. Wenn keine Locale angegeben ist, bestimmt das Plugin die am besten geeignete Locale basierend auf den Spracheinstellungen des Browsers des Benutzers. Wenn keine Locale erkannt wird, wird es zur Standard-Locale weitergeleitet.Beachten Sie, dass Sie das
vite-intlayerPaket vondevDependencieszudependenciesverschieben müssen, umintlayerProxyin der Produktion zu verwenden.Seit Intlayer v9 ist
intlayerProxy()direkt imintlayer()Plugin gebündelt und standardmäßig über dierouting.enableProxyOption (truestandardmäßig) aktiviert. Das separate Registrieren wie unten gezeigt ist jetzt optional – es wird aus Gründen der Rückwärtskompatibilität und für Setups, die die Plugin-Reihenfolge kontrollieren müssen, beibehalten. Setzen Sierouting.enableProxy: false, um zu deaktivieren. Siehe v9 Release Notes.vite.config.tsCode kopierenKopieren Sie den Code in die Zwischenablage
Extrahieren Sie den Inhalt Ihrer Komponenten
OptionalFalls Sie bereits eine vorhandene Codebasis haben, kann die Transformation von Tausenden von Dateien zeitaufwendig sein.
Um diesen Prozess zu erleichtern, stellt Intlayer einen Compiler / Extractor bereit, um Ihre Komponenten zu transformieren und den Inhalt zu extrahieren.
Um das einzurichten, können Sie einen
compilerBereich in Ihrerintlayer.config.tsDatei hinzufügen:intlayer.config.tsCode kopierenKopieren Sie den Code in die Zwischenablage
import { type IntlayerConfig } from "intlayer"; const config: IntlayerConfig = { // ... Rest Ihrer Config compiler: { /** * Zeigt an, ob der Compiler aktiviert sein soll. */ enabled: true, /** * Definiert den Ausgabedateipfad */ output: ({ fileName, extension }) => `./${fileName}${extension}`, /** * Zeigt an, ob die Komponenten nach der Transformation gespeichert werden sollen. * * - Falls `true`, schreibt der Compiler die Komponentendatei auf die Festplatte. So wird die Transformation permanent, und der Compiler überspringt die Transformation beim nächsten Prozess. Auf diese Weise kann der Compiler die App transformieren und anschließend entfernt werden. * * - Falls `false`, wird der Compiler den `useIntlayer()` Funktionsaufruf nur in die Buildausgabe einfügen und die Basis-Codebasis intakt halten. Die Transformation wird nur im Speicher durchgeführt. */ saveComponents: false, /** * Dictionary-Schlüssel-Präfix */ dictionaryKeyPrefix: "", }, }; export default config;Führen Sie den Extractor aus, um Ihre Komponenten zu transformieren und den Inhalt zu extrahieren
bashCode kopierenKopieren Sie den Code in die Zwischenablage
Seit v9 ist der
intlayerCompilerimintlayerPlugin enthalten. Sie müssen ihn also nicht manuell hinzufügen.Aktualisieren Sie Ihre
vite.config.ts, um dasintlayerCompilerPlugin einzuschließen:vite.config.tsCode kopierenKopieren Sie den Code in die Zwischenablage
bashCode kopierenKopieren Sie den Code in die Zwischenablage
TypeScript konfigurieren
Intlayer verwendet module augmentation, um die Vorteile von TypeScript zu nutzen und Ihre Codebase zu stärken.
Stellen Sie sicher, dass Ihre TypeScript-Konfiguration die automatisch generierten Typen enthält:
Kopieren Sie den Code in die Zwischenablage
Git-Konfiguration
Es wird empfohlen, die von Intlayer generierten Dateien zu ignorieren. Dies ermöglicht es Ihnen, zu vermeiden, dass diese in Ihr Git-Repository committed werden.
Dazu können Sie die folgenden Anweisungen zu Ihrer .gitignore-Datei hinzufügen:
Kopieren Sie den Code in die Zwischenablage
VS Code Extension
Um Ihre Entwicklungserfahrung mit Intlayer zu verbessern, können Sie die offizielle Intlayer VS Code Extension installieren.
Installieren Sie es vom VS Code Marketplace
Diese Extension bietet:
- Autocompletion für Übersetzungsschlüssel.
- Echtzeit-Fehlererkennung für fehlende Übersetzungen.
- Inline-Vorschau des übersetzten Inhalts.
- Quick Actions zum einfachen Erstellen und Aktualisieren von Übersetzungen.
Weitere Details zur Verwendung der Extension finden Sie in der Intlayer VS Code Extension-Dokumentation.
Weiter geht's
Um noch tiefer einzusteigen, kannst du den visuellen Editor implementieren oder deinen Inhalt mit dem CMS externalisieren.
Dokumentationsreferenzen
- Intlayer Documentation
- React Router v7 Documentation
- useIntlayer hook
- useLocale hook
- Content Declaration
- Configuration
Dieser umfassende Leitfaden bietet alles, was Sie benötigen, um Intlayer mit React Router v7 für eine vollständig internationalisierte Anwendung mit locale-aware Routing und TypeScript-Unterstützung zu integrieren.
Häufig gestellte Fragen
React Router v7 wird ohne Message Layer ausgeliefert, daher kombinieren Sie es mit einer i18n-Bibliothek:
react-i18next/i18next: JSON-Namespaces, die zur Laufzeit geladen werden, mit einem separaten Locale-Detektor zum Verbinden mit dem Router.react-intlundLingui: ICU-Nachrichten mit einem Extraktionsschritt.Intlayer: die fortschrittlichste Lösung. Inhalte werden überall in Ihrer Codebase deklariert (neben jeder Komponente oder zentralisiert), zur Build-Zeit kompiliert, durchgehend typisiert, mit Locale-aware Routing-Helfer, AI-Übersetzung, einem visuellen Editor und einem CMS.
Siehe warum Intlayer und das Benchmark.
Deutlich weniger als ein Namespace-basiertes Setup, da eine Seite nie einen Katalog herunterlädt, den sie nicht rendert. Server-gerenderte Markup werden auf dem Server aufgelöst, und der Build-Zeit-Compiler ersetzt useIntlayer-Aufrufe durch die exakten Dictionary-Einträge, die eine Komponente verwendet. Daher werden ungenutzte Schlüssel und ungenutzte Sprachen gelöscht, und dynamische Wörterbücher teilen den Rest pro Locale auf. Im Vergleich zu den üblichen Alternativen reduziert Intlayer die Bundle- und Seitengröße um bis zu 50 %. Siehe Bundle-Optimierung und das Benchmark.
Ja, und es gibt zwei Wege. Sie können den Inhalt schrittweise mit der react-i18next Migrationsleitfaden oder dem i18next Migrationsleitfaden migrieren. Oder Sie behalten Ihre aktuelle API vollständig bei: die Kompatibilitätsadapter stellen dieselbe API wie react-i18next, react-intl und i18next bereit, aber bedient durch Intlayer-Wörterbücher, sodass sich nur die Importe ändern und der Komponenten-Code nicht.
Ja. Das Sync JSON Plugin behält Ihre /messages/{locale}/{namespace}.json-Dateien als Single Source of Truth und generiert Intlayer-Wörterbücher daraus, in beide Richtungen. Ein Sync PO Plugin macht dasselbe für Gettext-Kataloge, und Pro-Locale-Dateien ermöglichen es Ihnen, Inhalte nach Sprache zu teilen, anstatt Locales in einer Datei zu gruppieren.
Nein. Führen Sie npx intlayer extract aus und Intlayer liest Ihre Komponenten, extrahiert die benutzerorientierten Strings und schreibt eine .content-Datei neben jede, sodass Sie einen Diff überprüfen, anstatt Strings einzeln in einen Katalog zu kopieren. Schritt 12 dieser Anleitung beschreibt dies ausführlich.
Für eine vollständig automatisierte Pipeline macht der Intlayer Compiler dasselbe zur Build-Zeit: er scannt bei jeder Änderung Ihre JSX-, TSX-, Vue- und Svelte-Quellen, generiert die Wörterbücher und hält sie durch Hot-Module-Replacement in Sync, sodass es keine Schlüssel gibt, die Sie von Hand pflegen müssen.
Zwei Grenzen sind es wert, vor dem Einschalten des Compilers bekannt zu sein. Er funktioniert durch statische Analyse, daher bleiben Strings, die nur zur Laufzeit existieren, wie API-Fehlercodes oder CMS-Felder, unerreichbar. Und er muss benutzerorientierte Texte von Anwendungslogik wie className="active" oder einem Statuscode unterscheiden, was in einer großen Codebase einige Annotationen erfordert. Der extract-Befehl vermeidet beides, indem er Sie in der Schleife hält.
Fünf Komponenten, alle optional:
- VS Code Extension: Springen Sie von einem
useIntlayer-Schlüssel zur Inhaltsdatei, die ihn deklariert, extrahieren Sie Inhalte aus einer Komponente, und führen Sie Build, Fill, Test, Push und Pull aus der Befehlspalette oder einem dedizierten Intlayer-Tab aus. - LSP-Server: dieselbe Awareness in jedem Editor, der LSP spricht, mit Goto Definition, Find All References, Hover-Vorschauen eines übersetzten Werts, Autovervollständigung von Schlüsseln und Feldern, und eine Warnung, wenn ein Schlüssel nirgendwo deklariert ist. Er löst auch
i18next-,react-i18next-,next-intl- unduse-intl-Aufrufe auf, was während der Migration hilft. - MCP-Server: stellt die Intlayer-Dokumentation und CLI für Cursor, VS Code, Claude Desktop, Claude Code und ChatGPT bereit, sodass ein Assistent aus aktuellen Dokumenten antwortet, anstatt zu raten, und Befehle wie
intlayer fillselbst ausführen kann. - Agent Skills: fokussierte Skills wie
intlayer-config,intlayer-cliundintlayer-content, plus einer pro Framework, die einem Agent Ihr Routing-Setup und die Inhaltsknoten-Typen beibringen. - ESLint Plugin:
no-raw-textkennzeichnet hartcodierte Strings, mit weiteren Regeln für statische Dictionary-Schlüssel und ungenutzten Inhalt.
