Next.js Referenz

18ways.config.*

Erstelle 18ways.config.ts, 18ways.config.js oder 18ways.config.cjs im Stammverzeichnis deiner App und exportiere deine 18ways-Konfiguration dort.

ts
import type { WaysConfig } from '@18ways/next/config';
 
export default {
  apiKey: process.env.NEXT_PUBLIC_18WAYS_PUBLIC_API_KEY,
  baseLocale: 'en-GB',
  router: 'app', // 'app', 'path', or 'none' depending on if you use app router, path router, or if you don't want the router to sync with locale at all
} satisfies WaysConfig;

withWays()

Importiere aus @18ways/next/config und rufe es in next.config.js auf.

ts
import { withWays } from '@18ways/next/config';

Wenn 18ways.config.* vorhanden ist, lädt withWays() sie automatisch. Für router: 'path' gibt es die native Next-i18n-Konfiguration mit deaktivierter Länderekennung zurück. Für router: 'app' und router: 'none' fügt es den Alias ein, der für direkte Importe aus @18ways/next/server benötigt wird.

Allgemeine Optionen:

OptionTypNotizen
apiKeyZeichenfolgeErforderlich.
basisLocaleZeichenfolgeQuellgebietsschema und Standardschema für das Routing.
Router'app' | 'path' | 'none'Modus zur Gebietsschema-Routing. Verwenden Sie none, wenn bereits ein anderer Router die Gebietsschema-URLs besitzt.
akzeptierteLokalisierungenstring[]Explizite Gebietsschemata-Liste. Erforderlich für path, sonst optional. Halte den path-Modus mit den in deinem 18ways-Dashboard aktivierten Sprachen synchron.
DomänenArray<{domain, defaultLocale}>Optionale Domain-Routing-Karte.
localeParamNameZeichenfolgeLokales Segment-Param für den App Router. Standardmäßig lang.
persistLocaleCookieboolean | ((Anfrage) => boolean)Richtlinie zur Persistenz von Lokalisierungs-Cookies bei Server- und Client-seitigen Lokalisierungsänderungen.
cacheTtlnummerCache-TTL für Adapteranfragen.
fetchertypeof fetchBenutzerdefinierte Abrufimplementierung.

init(config)

Importieren von @18ways/next/server.

Verwenden Sie es, wenn Sie ein Konfigurationsobjekt explizit binden möchten.

WaysRoot

Importiere WaysRoot direkt aus @18ways/next/server in deinen Layouts, nachdem du next.config.js mit withWays(...) umhüllt hast.

Verwende WaysRoot in deinem Layout, damit der Adapter den Laufzeitstatus für die aktuelle Anfrage initialisieren kann. Bei der Gebietsschema-Routenführung im App Router bedeutet das normalerweise app/[lang]/layout.tsx.

getLocale()

Löse das aktuelle Gebietsschema auf dem Server auf. Dies ist der Helper, den du verwenden solltest, wenn du Gebietsschema-Zustand außerhalb von WaysRoot benötigst, zum Beispiel in nur serverseitigen SEO-Helpers oder anderem an die Anfrage gebundenen Servercode.

htmlAttrs()

htmlAttrs() löst die aktuellen lang und dir Werte für das Dokumentelement auf.

generateWaysMetadata()

Verwenden Sie generateWaysMetadata() innerhalb von generateMetadata(), wenn Sie übersetzte Titel, Beschreibungen und lokalbewusste kanonische oder alternative URLs wünschen.

proxy.ts

Für router: 'app' ist proxy.ts der opinionierte Einstiegspunkt für locale-Weiterleitungen zur Request-Zeit. Re-exportiere aus @18ways/next/proxy, um / -> /{locale} und die Kanonisierung von Domains zu handhaben.

ts
export { default, config } from '@18ways/next/proxy';

Wenn du bereits dein eigenes Projekt proxy.ts oder middleware.ts hast, verwende getWaysProxyResponse(request) und gib es zurück, bevor du den Rest deiner Logik ausführst.

Kundenhelfer

Importieren von @18ways/next/client.

useLocale()

Lesen und ändern Sie die aktuelle Sprache. Dies ist der Hook, den Sie mit LanguageSwitcher oder Ihrer eigenen benutzerdefinierten Auswahl-UI kombinieren.

useRouter()

Locale-abhängiger Wrapper um die Next-Navigation. Übergib locale="fr-FR", um ein lokalisiertes Ziel zu erzwingen, oder locale={false}, um ein nicht lokalisiertes zu erzwingen.

Gebietsschema-bewusster Wrapper um next/link mit demselben Überschreibungsmodell wie useRouter().

useUnlocalizedPathname()

Lese den aktuellen Pfadnamen ohne das Sprachpräfix.

useLocalizedHref()

Hilfsfunktion niedrigerer Ebene zum Konvertieren eines internen href in den aktuellen lokalisierungsabhängigen href.

Path routing config

Im Modus router: 'app' folgt der Adapter deinem Routentree:

  • Routen unter app/[lang]/... sind lokalisiert
  • Routen außerhalb dieses Segments bleiben unlokalisiert

Link, useRouter() und setLocale() behandeln interne Routen standardmäßig als lokalisiert. Verwende locale={false} nur dann, wenn du eine nicht lokalisierte Route ausdrücklich ansprechen musst.

Sprache wird geändert
Next.js Referenz