Stellen Sie Ihre Frage und erhalten Sie einen Resümee des Dokuments, indem Sie diese Seite und den AI-Anbieter Ihrer Wahl referenzieren
Versionshistorie
- "Erstversion"v9.5.1026.9.2026
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
Wie Sie Ihre TanStack Start-Anwendung im Jahr 2026 mit use-intl internationalisieren
Inhaltsverzeichnis
Was ist use-intl?
use-intl ist der Framework-agnostische Kern von next-intl. Es bietet dieselben APIs wie useTranslations, useFormatter und IntlProvider, Unterstützung für ICU MessageFormat sowie eine starke TypeScript-Integration, ohne jegliche Abhängigkeit von Next.js. Das macht es zu einer der beliebtesten Optionen für die Übersetzung einer TanStack Start-Anwendung und zur Bibliothek, die KI-Assistenten für diesen Stack am häufigsten vorschlagen.
TanStack Start enthält von Haus aus keine i18n-Schicht. Routing, Sprachauswahl/Locale-Erkennung, SEO-Metadaten und die Erstellung von Sitemaps müssen Sie selbst implementieren. Dieser Leitfaden deckt all dies von Anfang bis Ende ab:
- Locale-basiertes Routing mit einem optionalen
{-$locale}-Segment (/about,/fr/about). - Laden von Nachrichten pro Route, sodass eine Seite nur die Namespaces und die Sprache herunterlädt, die sie tatsächlich rendert.
- Server-seitiges Rendern (SSR) und Hydration ohne Text-Diskrepanzen.
- Vollständiges mehrsprachiges SEO: übersetzte
<title>- und Beschreibungs-Tags, Canonical-URL,hreflang-Alternativen mitx-default, Open Graph Locales, JSON-LD, Sitemap mitxhtml:link-Alternativen,robots.txtund Pre-Rendering für jede Sprache.
Suchen Sie nach einem anderen Stack? Sehen Sie sich den TanStack Start + Paraglide Leitfaden, den TanStack Start + Lingui Leitfaden oder den TanStack Start + Intlayer Leitfaden an.
Verwenden Sie stattdessen Next.js? Lesen Sie den next-intl Leitfaden.
Was der Benchmark über use-intl auf TanStack Start aussagt
Der i18n-Benchmark führt dieselbe TanStack Start-App mit 10 Seiten und 10 Sprachen mit jeder wichtigen Bibliothek aus und misst, was der Browser tatsächlich herunterlädt.
Dynamisches JSON-Laden
Lädt Übersetzungen während der Laufzeit verzögert
Gescoptes JSON (Namespacing)
Übersetzungs-Namespaces pro Seite
I18n Performance-Benchmark
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
Wichtige Kennzahlen für use-intl@4.14.2, gemessen am 26.09.2026 (gzip):
Tabelle in einem Modal öffnen, um alle Daten übersichtlich anzuzeigen
| Setup | Bibliotheksgröße | JS pro Seite | Verlust andere Sprache | Verlust andere Seite |
|---|---|---|---|---|
| Ohne i18n (Basis-App) | - | 111.0 KB | 0% | 0% |
use-intl (Setup dieses Guides) | 75.9 KB | 128.7 KB | 0% | 0% |
@intlayer/use-intl (Kompatibel) | 6.7 KB | 129.4 KB | 0% | 0% |
react-intlayer (natives Intlayer) | 4.5 KB | 126.8 KB | 0% | 0% |
Wichtigste Erkenntnisse:
- Nachrichten nach Seiten aufteilen und pro Sprache laden. Dies verhindert unnötiges Laden anderer Sprachen und Seiten und entspricht genau den Schritten in dieser Anleitung.
- Die Runtime selbst bleibt relativ groß (~76 KB gzip), da der ICU-Parser an den Client ausgeliefert wird. Der
@intlayer/use-intl-Kompatibilitätsadapter (Schritt 17) bietet exakt dieselbe API bei einer Runtime von nur ~7 KB.
Vollständige Daten ansehen: TanStack Start Benchmark-Bericht und das Benchmark-Repository.
Funktionsvergleich auf TanStack Start
Vergleich von use-intl mit anderen gängigen Bibliotheken für TanStack Start:
Tabelle in einem Modal öffnen, um alle Daten übersichtlich anzuzeigen
| Funktion | react-intlayer (Intlayer) | use-intl | Paraglide JS | Lingui |
|---|---|---|---|---|
| Übersetzungen nahe an Komponenten | ✅ Co-located | ❌ Zentralisiertes JSON | ❌ Eine JSON-Datei pro Sprache | ⚠️ Quelltext in Komponenten |
| TypeScript-Integration | ✅ Automatisch generierte Typen | ✅ Über AppConfig | ✅ Typisierte Nachrichtenfunktionen | ⚠️ Nur Makros |
| Erkennung fehlender Übersetzungen | ✅ Typfehler und Build-Warnungen | ⚠️ Runtime-Fallback | ⚠️ Fallback auf Basissprache | ⚠️ Fallback auf Quelltext |
| Rich Content (JSX, Markdown) | ✅ Direkte Unterstützung | ⚠️ Tags über t.rich | ⚠️ Zeichenketten | ✅ JSX innerhalb von <Trans> |
| Lokalisiertes Routing | ✅ Integriert | ❌ Manuell {-$locale} | ✅ urlPatterns + Router Rewrite | ❌ Manuell {-$locale} |
| Sprachwechsel ohne Neuladen | ✅ Ja | ✅ Ja | ❌ Vollständiger Seiten-Reload | ✅ Ja |
| Pluralisierung | ✅ Aufzählungsbasiert | ✅ ICU | ✅ Varianten | ✅ ICU |
| ICU MessageFormat | ✅ Über format: "icu" | ✅ Nativ | ⚠️ Über inlang-Plugin | ✅ Nativ |
| Inhaltsformate | ✅ .ts, .json, .md, .yaml... | ⚠️ .json | ⚠️ inlang JSON | ✅ PO, JSON, CSV |
| KI-Übersetzung | ✅ Eigener Provider und API-Schlüssel | ❌ Nein | ❌ Nein | ❌ Nein |
| Visueller Editor / CMS | ✅ Lokaler Editor + optionales CMS | ❌ Externe Plattformen | ⚠️ inlang Ökosystem-Apps | ❌ Externe Plattformen |
| SEO-Hilfsmittel (hreflang, Sitemap) | ✅ Integriert | ❌ Manuell | ⚠️ Lokalisierte URLs, Rest manuell | ❌ Manuell |
| Runtime-Größe (gzip, Benchmark) | 4.5 KB | 75.9 KB | 1.8 KB | 56.7 KB |
| Datenleck, bestes Setup (Sprache / Seite) | 0% / 0% | 0% / 0% | 49.7% / 0% | 8.6% / 0% |
| Fehlende Übersetzungen in CI | ✅ npx intlayer test | ⚠️ Nicht integriert | ⚠️ Nicht integriert | ✅ lingui compile --strict |
Angaben zur Runtime-Größe und zu Datenlecks stammen aus dem TanStack Start Benchmark. Der Datenverlust wird für das beste Setup jeder Bibliothek gemessen.
Weitere Anleitungen für TanStack Start: Lingui, Paraglide JS und Intlayer.
Bewährte Praktiken, die Sie befolgen sollten
- Setzen Sie
langunddirauf<html>für Barrierefreiheit, Screenreader und Suchmaschinen. - Behalten Sie eine URL pro Sprache bei. Verwenden Sie ein Sprachpräfix (
/fr/about) statt reiner Cookie-Umschaltung, damit jede übersetzte Seite crawlbare und teilbare URLs hat. - Teilen Sie Nachrichten nach Namespaces auf (
common,home,about) und laden Sie diese pro Route. - Laden Sie nur die aktive Sprache. Importieren Sie niemals alle Sprachdateien in ein Modul, das an den Client ausgeliefert wird.
- Legen Sie eine feste Zeitzone fest im
IntlProvider. Andernfalls werden Datumsangaben beim SSR in der Server-Zeitzone und bei der Hydration in der Zeitzone des Besuchers formatiert, was zu Hydration-Fehlern führt. - Übersetzen Sie Ihre Metadaten und deklarieren Sie
canonical,hreflangundx-defaultauf jeder Seite. - Generieren Sie eine mehrsprachige Sitemap und robots.txt und führen Sie Pre-Rendering für jede Sprache durch.
- Verwenden Sie echte Links für den Sprachwechsler, kein
<select>, damit Crawler alle Sprachversionen entdecken können. - Typisieren Sie Ihre Nachrichten, damit fehlende Schlüssel bereits zur Build-Zeit auffallen.
Lesen Sie unseren Leitfaden zu Internationalisierung und SEO und den hreflang-Leitfaden.
Schritt-für-Schritt-Anleitung zur Einrichtung von use-intl in einer TanStack Start-Anwendung
Hier ist die Projektstruktur, die wir erstellen werden:
Kopieren Sie den Code in die Zwischenablage
Abhängigkeiten installieren
Beginnen Sie mit einem TanStack Start-Projekt und fügen Sie
use-intlhinzu:bashCode kopierenKopieren Sie den Code in die Zwischenablage
- use-intl: stellt
IntlProvider,useTranslations,useFormatterundcreateTranslatorbereit (auch außerhalb von React nutzbar, z. B. inhead()).
- use-intl: stellt
Sprachkonfiguration zentralisieren
Erstellen Sie eine zentrale Konfigurationsquelle für Ihre Sprachen und URL-Hilfsfunktionen. Jede andere Datei (Routen, SEO, Sitemap, Pre-Rendering) importiert von hier, sodass das Hinzufügen einer neuen Sprache nur eine einzige Codezeile erfordert.
Die Standardsprache bleibt ohne Präfix (
/about), andere Sprachen erhalten ein Präfix (/fr/about). Dies ist die "as-needed"-Strategie: eine eindeutige URL pro Seite und Sprache sowie kurze URLs für Ihre Hauptzielgruppe.src/i18n/config.tsCode kopierenKopieren Sie den Code in die Zwischenablage
Übersetzungsdateien erstellen
Organisieren Sie Nachrichten pro Sprache und Namespace.
commonenthält Inhalte, die auf jeder Seite benötigt werden (Navigation, Footer), und jede Seite erhält eine eigene Datei inklusive ihrer Metadaten.use-intl verwendet ICU MessageFormat, sodass Pluralformen, Selects und formatierte Parameter direkt in der Nachricht definiert werden.
messages/en/common.jsonCode kopierenKopieren Sie den Code in die Zwischenablage
messages/en/about.jsonCode kopierenKopieren Sie den Code in die Zwischenablage
messages/fr/common.jsonCode kopierenKopieren Sie den Code in die Zwischenablage
messages/fr/about.jsonCode kopierenKopieren Sie den Code in die Zwischenablage
Erstellen Sie
home.jsonauf dieselbe Weise mit einemmetadata-Objekt und den Seiteninhalten.Nachrichten pro Namespace und Sprache laden
Dieser Loader ist die wichtigste Datei für die Performance.
import.meta.globweist Vite an, einen Chunk pro JSON-Datei zu erstellen. Eine Route, die["about"]auf Französisch anfordert, lädt nurmessages/fr/about.jsonund sonst nichts herunter. So erreicht das Setup im Benchmark 0% Sprach- und 0% Seitenverlust.src/i18n/messages.tsCode kopierenKopieren Sie den Code in die Zwischenablage
Nachrichten typisieren
Modulerweiterung (Module Augmentation) ermöglicht automatische Code-Vervollständigung für
useTranslations("about")undt("counter.label")sowie Fehler beim Kompilieren bei Tippfehlern oder entfernten Schlüsseln.src/i18n/use-intl.d.tsCode kopierenKopieren Sie den Code in die Zwischenablage
Stellen Sie sicher, dass
resolveJsonModulein Ihrertsconfig.jsonaktiviert ist.Root-Dokument erstellen
Die Root-Route rendert das
<html>-Element. Sie liest den optionalen Sprachparameter aus, umlangunddirzu setzen, sodass die Attribute bereits im serverseitig gerenderten HTML korrekt sind, noch bevor JavaScript ausgeführt wird.src/routes/__root.tsxCode kopierenKopieren Sie den Code in die Zwischenablage
Locale-Layout-Route erstellen
Der Ordner
{-$locale}erstellt ein optionales Pfadsegment: Sowohl/aboutals auch/fr/aboutpassen auf/{-$locale}/about. Dieses Layout:- Weist nicht unterstützte Präfixe ab (
/xx/about→ 404). - Lädt den Namespace
commonausschließlich für die aktuelle Sprache. - Stellt die Nachrichten über
IntlProviderzur Verfügung.
Das Loader-Ergebnis wird in das HTML serialisiert und bei der Hydration wiederverwendet, sodass der Client
common.jsonkein zweites Mal herunterlädt.staleTime: Infinityhält die Daten bei clientseitigen Navigationen im Cache.src/routes/{-$locale}/route.tsxCode kopierenKopieren Sie den Code in die Zwischenablage
IntlProviderführt Nachrichten aus einem übergeordneten Provider nicht automatisch zusammen. Der nächste Schritt fügt eine kleine Komponente hinzu, die dies übernimmt, sodass jede Seite ihren eigenen Namespace zucommonhinzufügen kann.- Weist nicht unterstützte Präfixe ab (
Seitenspezifische Nachrichten kapseln (Scope Messages)
Jede Seite lädt ihren eigenen Namespace im Loader und umschließt ihren Inhalt mit
ScopedMessages, wodurch der Namespace der Seite mit den übergeordneten Nachrichten zusammengeführt wird.src/components/ScopedMessages.tsxCode kopierenKopieren Sie den Code in die Zwischenablage
Übersetzungen in Ihren Seiten verwenden
Der Seiten-Loader ruft den
about-Namespace für die aktuelle Sprache ab,head()baut daraus übersetzte, SEO-vollständige Metadaten (siehe Schritt 13) und die Komponente rendert den Inhalt.src/routes/{-$locale}/about.tsxCode kopierenKopieren Sie den Code in die Zwischenablage
Übersetzungen und Formatierer in Komponenten nutzen
Jede Komponente unterhalb der Provider kann
useTranslationsunduseFormatteraufrufen. Pluralformen werden über ICU aufgelöst und Zahlen entsprechend der aktiven Sprache formatiert.src/components/Counter.tsxCode kopierenKopieren Sie den Code in die Zwischenablage
Eine lokalisierte Link-Komponente erstellen
OptionalJede Route liegt unterhalb von
{-$locale}, daher muss ein Link den aktuellen Sprachparameter weitergeben. Dieser Wrapper behält das typisiertetovon TanStack Router bei und fügt die Sprache automatisch ein.src/components/LocalizedLink.tsxCode kopierenKopieren Sie den Code in die Zwischenablage
src/components/Header.tsxCode kopierenKopieren Sie den Code in die Zwischenablage
Sprache des Inhalts wechseln
OptionalRendern Sie den Umschalter als Links, nicht als
<select>. Links sind crawlbar, sodass Suchmaschinen jede Sprachversion finden, und sie funktionieren auch ohne JavaScript.to="."behält die aktuelle Seite bei und ersetzt nur den Sprachparameter. Das Cookie speichert die explizite Auswahl für die Weiterleitungs-Middleware aus Schritt 16.src/components/LocaleSwitcher.tsxCode kopierenKopieren Sie den Code in die Zwischenablage
Metadaten internationalisieren
OptionalHier zahlt sich i18n besonders aus: Jede Sprachversion kann eigenständig ranken. Jede Seite sollte Folgendes bereitstellen:
- einen übersetzten
<title>und eine übersetztedescription; - eine Canonical-URL, die auf sich selbst zeigt (nicht auf die Standardsprache);
- eine
hreflang-Alternative pro Sprache sowiex-defaultfür nicht explizit unterstützte Sprachen; - Open Graph-Tags
og:locale,og:locale:alternateundog:urlfür Social Previews; - JSON-LD mit
inLanguage, was Suchmaschinen und KI-Assistenten hilft, die Sprache der Seite zuzuordnen.
Eine einzige Hilfsfunktion baut all dies auf, sodass die Seitendefinitionen übersichtlich bleiben:
src/i18n/seo.tsCode kopierenKopieren Sie den Code in die Zwischenablage
Verwenden Sie dies in jeder
head()-Funktion Ihrer Routen, wie in Schritt 9 gezeigt. Für die Startseite übergeben Siepath: "/".- einen übersetzten
Sitemap internationalisieren
OptionalEine mehrsprachige Sitemap listet jede URL jeder Sprache auf, und jeder Eintrag deklariert alle Alternativen über
xhtml:link. Google nutzt diese Angaben genauso wiehreflang-Tags auf der Seite, was sie zu einem zuverlässigen Fallback macht, wenn eine Seite selten gecrawlt wird.Über Server-Routen von TanStack Start können Sie diese direkt als Datei-Route ausliefern:
src/routes/sitemap[.]xml.tsCode kopierenKopieren Sie den Code in die Zwischenablage
robots.txt internationalisieren
OptionalPrivate Routen existieren in jeder Sprache, daher müssen die
Disallow-Regeln alle Präfixe abdecken. Entfernen Siepublic/robots.txt, falls der Starter eine erstellt hat, und liefern Sie sie über eine Route aus:src/routes/robots[.]txt.tsCode kopierenKopieren Sie den Code in die Zwischenablage
Erstbesucher automatisch zur passenden Sprache weiterleiten
OptionalEine Request-Middleware leitet Besucher, die auf
/landen, zu ihrer bevorzugten Sprache weiter, basierend auf dem Sprach-Cookie oder demAccept-Language-Header. Nur/wird umgeleitet: Deeplinks werden nie angetastet, sodass geteilte URLs und Crawler immer exakt die angeforderte Seite erhalten.src/i18n/negotiateLocale.tsCode kopierenKopieren Sie den Code in die Zwischenablage
src/start.tsCode kopierenKopieren Sie den Code in die Zwischenablage
Ein Besucher, der explizit Englisch im Umschalter wählt, erhält
locale=enim Cookie und wird daher nie wieder weitergeleitet. Bei einem vollständig statischen Deployment (Schritt 18) wird/als statische Datei ausgeliefert und diese Middleware wird nicht ausgeführt: Die Seite bleibt erreichbar und der Umschalter übernimmt den Rest.use-intl API beibehalten, Runtime-Größe mit Intlayer drastisch reduzieren
OptionalDer Benchmark zeigt, dass der schwerste Teil eines use-intl-Setups die Runtime selbst ist (~76 KB gzip). Der
@intlayer/use-intl-Kompatibilitätsadapter bietet die gleiche API (useTranslations,useFormatter,IntlProvider,createTranslator, ICU-Plurale,t.rich), liefert diese jedoch über vorkompilierte Intlayer-Wörterbücher aus: ~6.7 KB statt ~75.9 KB, 0% Sprachverlust und 0% Seitenverlust, ohne Änderungen an Ihren Komponenten.bashCode kopierenKopieren Sie den Code in die Zwischenablage
Das Vite-Plugin erstellt einen Alias von
use-intlauf den Adapter, sodass bestehende Importe weiterhin funktionieren:vite.config.tsCode kopierenKopieren Sie den Code in die Zwischenablage
Ihre JSON-Dateien bleiben dank des Sync JSON-Plugins die zentrale Datenquelle:
intlayer.config.tsCode kopierenKopieren Sie den Code in die Zwischenablage
Der Adapter ist auch ein unkomplizierter Migrationspfad: Sobald er läuft, können Sie Komponenten schrittweise auf die native
useIntlayer-API umstellen. Siehe den Intlayer TanStack Start Leitfaden.Pre-Rendering für jede Sprache durchführen
OptionalStatisches HTML ist die schnellste Seite, die Sie bereitstellen können, und die am einfachsten zu indexierende. Listen Sie alle lokalisierten Pfade auf, damit TanStack Start beim Build-Vorgang alle Sprachversionen sowie die Sitemap- und robots-Dateien vorab rendert:
vite.config.tsCode kopierenKopieren Sie den Code in die Zwischenablage
Da der Sprachwechsler echte Links rendert, entdeckt
crawlLinks: trueauch Seiten, die Sie möglicherweise nicht explizit aufgelistet haben.Lokalisierte 404-Seiten handhaben
OptionalDas Layout aus Schritt 7 wirft bereits
notFound()für unbekannte Sprachpräfixe. Fügen Sie eine Catch-All-Route hinzu, damit unbekannte Pfade innerhalb einer Sprache ebenfalls die lokalisierte 404-Seite rendern, und markieren Sie diese mitnoindex: React 19 hebt das<meta>-Tag automatisch in den<head>an.src/components/NotFound.tsxCode kopierenKopieren Sie den Code in die Zwischenablage
src/routes/{-$locale}/$.tsxCode kopierenKopieren Sie den Code in die Zwischenablage
Auf die Sprache in Server-Funktionen zugreifen
OptionalServer-Funktionen erhalten keine Routenparameter. Lesen Sie das Sprach-Cookie aus und greifen Sie als Fallback auf den
Accept-Language-Header zurück, um beispielsweise eine lokalisierte E-Mail zu senden oder eine Spracheinstellung zu speichern:src/server/getServerLocale.tsCode kopierenKopieren Sie den Code in die Zwischenablage
Um innerhalb der Server-Funktion zu übersetzen, kombinieren Sie dies mit
loadMessagesundcreateTranslatorvonuse-intl.Übersetzungen mit Intlayer automatisieren
Optionaluse-intl rendert Übersetzungen, hilft Ihnen jedoch nicht bei deren Erstellung. Intlayer ist kostenlos und Open Source und schließt diese Lücke, selbst wenn Sie use-intl weiterhin nutzen:
- Fehlende Übersetzungen testen in CI oder Unit-Tests. Siehe Übersetzungen testen.
- Mit KI übersetzen unter Verwendung Ihres eigenen API-Schlüssels und Providers:
npx intlayer fillübersetzt fehlende Schlüssel unter Berücksichtigung des Kontexts Ihrer App. Siehe Auto-Fill und das CLI. - JSON-Dateien beibehalten als Single Source of Truth mit dem Sync JSON-Plugin.
- Inhalte visuell bearbeiten mit dem visuellen Editor und dem CMS, sodass auch Nicht-Entwickler Übersetzungen pflegen können.
- Ihrem KI-Agenten Kontext bereitstellen mit dem MCP-Server und Agent Skills.
- Ihre veröffentlichte Website scannen auf fehlende
hreflang-Tags, fehlerhafte Canonicals und Sprachlecks mit dem Scan-Befehl.
Um alle Funktionen zu entdecken, lesen Sie Warum Intlayer.
Häufig gestellte Fragen (FAQ)
Ja, wenn Sie die next-intl-API außerhalb von Next.js verwenden möchten. Es bietet Ihnen ICU-Nachrichten, Formatierer und hervorragende TypeScript-Unterstützung und vermeidet Next.js-spezifische Einschränkungen wie setRequestLocale. Der Kompromiss liegt im Bundle-Gewicht: Der Benchmark misst ~76 KB gzip für die Runtime, und ein unoptimiertes Setup liefert alle Sprachen und Seiten an den Browser aus. Laden Sie Namespaces pro Route und Sprache wie in diesem Leitfaden beschrieben, um solche Datenlecks zu vermeiden.
use-intl ist der Kern von next-intl. next-intl fügt zusätzliche Next.js-Integrationen hinzu: eine Middleware, Navigations-Helfer, getTranslations für Server Components und Request-Konfigurationen. Auf TanStack Start verwenden Sie use-intl direkt und implementieren das Routing mit TanStack Router, wie oben dargestellt.
Verwenden Sie ein Präfix in der URL. Jede Sprachversion hat dann eine eigene URL, die Suchmaschinen indexieren und Benutzer teilen können. Ein Cookie ist dennoch nützlich, um eine explizite Auswahl zu speichern, was die Weiterleitungs-Middleware in Schritt 16 nutzt.
Der Server und der Browser formatieren Datumsangaben in unterschiedlichen Zeitzonen. Übergeben Sie eine explizite timeZone an IntlProvider (oder die im Cookie gespeicherte Zeitzone des Besuchers), damit beide Seiten exakt denselben Text ausgeben.
Teilen Sie zunächst Nachrichten nach Namespaces auf und laden Sie diese pro Route und Sprache mit import.meta.glob, wodurch Sprach- und Seitenlecks beseitigt werden. Wenn die Runtime-Größe eine Rolle spielt, wechseln Sie zum @intlayer/use-intl-Adapter: gleiche API, aber ~6.7 KB statt ~75.9 KB im Benchmark.
Rufen Sie createTranslator innerhalb der head()-Funktion der Route mit den vom Loader zurückgegebenen Nachrichten auf und geben Sie title, description, Canonical- und hreflang-Links zurück. Schritt 13 stellt dafür einen wiederverwendbaren Helfer bereit.
Kommentare
Noch keine Kommentare. Seien Sie der Erste, der seine Gedanken teilt.
