Config

withGTConfig

API-Referenz für withGTConfig(), vormals initGT()

Übersicht

withGTConfig ist der primäre Weg, die Bibliothek gt-next zu konfigurieren. Es umschließt direkt ein NextConfig-Objekt.

next.config.mjs
import { withGTConfig } from 'gt-next/config';

const nextConfig = {
    // Ihre vorhandene next.config.js
}

export default withGTConfig(nextConfig, {
  // Weitere Konfigurationsoptionen
});

Legacy

initGT ist die frühere (Legacy-)Methode zur Konfiguration der gt-next-Bibliothek. Sie gibt eine Callback-Funktion zurück, die anschließend auf dem NextConfig-Objekt aufgerufen wird. Die Props beider Funktionen sind identisch, mit der Ausnahme, dass withGTProps erfordert, dass NextConfig ebenfalls übergeben wird.

Verwenden Sie withGTConfig, um:

  • Unterstützte Sprachen und die Standard-locale zu konfigurieren (alias Standardsprache).
  • API-Schlüssel und Projekt-IDs für den Zugriff auf GT-Dienste festzulegen.
  • Das Ladeverhalten festzulegen.
  • Zeitüberschreitungen zu konfigurieren.
  • Eigene Endpunkte einzurichten.
  • Übersetzungsverhalten, Caching und Request-Batching anzupassen.
  • Build-Time-Validierung über das SWC-Plugin zu konfigurieren.

withGTConfig muss in Ihrer Datei next.config.js verwendet werden, um die Übersetzungsfunktionalität zu aktivieren.

Referenz

Standardmäßig sucht withGTConfig nach einer Datei gt.config.json im selben Verzeichnis wie Ihre next.config.js.

Diese JSON-Datei wird geladen und mit der an withGTConfig übergebenen Konfiguration zusammengeführt.

Weitere Informationen zur Konfigurationsdatei finden Sie in der Referenz zu gt.config.json.

Das CLI-Tool liest die Konfiguration ausschließlich aus der Datei gt.config.json. Daher empfehlen wir, gt.config.json als maßgebliche Quelle für Ihre App zu verwenden.

Zusätzliche options, die nicht in gt.config.json enthalten sind, können withGTConfig direkt als Props übergeben werden.

Erforderliche Props

Prop

Type

Empfohlene Props

Prop

Type

PropDescription
defaultLocaleStandardmäßige defaultLocale für die Anwendung. Englisch dient als Standardwert, wenn keine angegeben ist.
localesEine ausschließliche Liste unterstützter locales für die Anwendung. Geht eine nicht unterstützte Anfrage ein, wird zur nächsthöher bevorzugten Browsersprache in der Liste umgeleitet. Fällt auf defaultLocale zurück, wenn keine Übereinstimmung gefunden wird.
descriptionEine natürlichsprachliche Beschreibung der Website, die die Übersetzung unterstützt.

Erweiterte Props

Prop

Type

PropBeschreibung
projectIdProjekt-ID, die hier oder als Umgebungsvariable angegeben werden kann.
apiKeyZwar nicht empfohlen, aber ein hier anzugebender API-Schlüssel. Alternativ kann er als Umgebungsvariable gesetzt werden.
devApiKeyZwar nicht empfohlen, aber ein hier anzugebender Entwicklungs-API-Schlüssel. Alternativ kann er als Umgebungsvariable gesetzt werden.
preferredModelProviderBevorzugter KI-Modelanbieter. Derzeit sind nur Anthropic oder OpenAI verfügbar. Lassen Sie dieses Feld leer, ermitteln wir pro Übersetzung den jeweils besten Anbieter. In Zeiten hoher Auslastung oder bei Deaktivierung eines Anbieters können wir nicht garantieren, dass der bevorzugte Anbieter genutzt wird.
runtimeUrlBasis-URL für die GT-API. Um die automatische Übersetzung zu deaktivieren, setzen Sie dies auf einen leeren String.
cacheUrlURL, unter der zwischengespeicherte Übersetzungen abgelegt werden. Kann angepasst werden, um auf einen eigenen Cache-Server zu verweisen.
cacheExpiryTimeZeit in Millisekunden, bis lokal zwischengespeicherte Übersetzungen ablaufen.
renderSettingsObjekt, das das Ladeverhalten für Runtime-Übersetzungen definiert.
maxConcurrentRequestsMaximale Anzahl gleichzeitiger Übersetzungsanfragen an die GT-API.
maxBatchSizeMaximale Anzahl von Übersetzungen, die vor dem Senden einer Anfrage gebündelt werden.
batchIntervalIntervall in Millisekunden zwischen gebündelten Übersetzungsanfragen. Hilft, die Versandrate der Anfragen zu steuern.
dictionaryOptionaler Konfigurationspfad für das Wörterbuch. Ähnlich wie i18n akzeptiert es einen String zur Angabe eines benutzerdefinierten Pfads. Wörterbücher mit dem Namen dictionary.js (oder .jsx, .ts, .tsx usw.), die im Projektstamm oder im Ordner src liegen, werden standardmäßig unterstützt.
dynamicJsxCheckLogLevelSteuert die Validierung von nicht umschlossenem dynamischem Inhalt in Übersetzungskomponenten. Setzen Sie auf "error", um Builds fehlschlagen zu lassen, auf "warn" für Warnungen oder auf "off", um die Prüfung zu deaktivieren.
dynamicStringCheckLogLevelSteuert die Validierung von Argumenten der Übersetzungsfunktion, um die Verwendung von String-Literalen sicherzustellen. Setzen Sie auf "error", um Builds fehlschlagen zu lassen, auf "warn" für Warnungen oder auf "off", um die Prüfung zu deaktivieren.

Rückgabewert

Eine Funktion (NextConfig) => NextConfig, die das Next.js‑Konfigurationsobjekt mit den angegebenen GT‑Einstellungen erweitert.

Ausnahmen

Löst einen Error aus, wenn die projectId fehlt und Standard-URLs verwendet werden, oder wenn der API-Schlüssel erforderlich ist und fehlt.


Render-Einstellungen

Die Render-Einstellungen steuern das Verhalten von Übersetzungen während des Ladens. Dies gilt nur für Übersetzungen, die zur Laufzeit erfolgen. Wenn die Übersetzung zwischengespeichert ist, ist die Antwortzeit zu kurz, um spezielles Ladeverhalten zu rechtfertigen.

Prop

Type

PropDescription
methodDie Methode, mit der die Seite gerendert wird. Optionen sind skeleton, replace und default.
timeoutDie Zeit in Millisekunden, bevor die Methode in eine Zeitüberschreitung läuft. Standard ist 8000 ms.

Render-Methoden

  • skeleton: Rendert ein Fragment.
  • replace: Rendert Inhalte in der Standardsprache während des Wartens.
  • default: Für locales mit derselben Sprache (z. B. en-US und en-GB) verhält es sich wie replace. Für locales mit unterschiedlichen Sprachen (z. B. en-US und fr) verhält es sich wie skeleton.

Zeitüberschreitung

Zeitüberschreitungen gelten nur für Laufzeitübersetzungen, also Übersetzungen, die bei Bedarf ausgeführt werden müssen, weil sie nicht im Cache liegen.

Standardmäßig beträgt die Zeitüberschreitung 8 Sekunden. Diese Designentscheidung kommt Vercel-Nutzerinnen und -Nutzern entgegen, die im kostenlosen Tarif eine standardmäßige Zeitüberschreitung von 10 Sekunden für serverlose Funktionen haben.


Beispiele

Render-Einstellungen

Dieses Beispiel konfiguriert gt-next, damit während des Ladens der Übersetzungen ein Skeleton gerendert wird. Wenn das Laden der Übersetzungen länger als 8 Sekunden dauert, läuft die Methode in einen Timeout und rendert den Inhalt in der Standardsprache.

gt.config.json
{
  "defaultLocale": "en-US",
  "locales": ["en-US", "es", "fr"],
}
next.config.mjs
import { withGTConfig } from 'gt-next/config';

const nextConfig = {
  // Ihre weiteren Next.js-Konfigurationen
};

export default withGTConfig(nextConfig, {
  renderSettings: {
    method: 'skeleton',
    timeout: 10000,
  },
});

Validierung zur Build-Zeit

Dieses Beispiel konfiguriert das SWC-Plugin so, dass Verstöße gegen dynamische Inhalte als Build-Fehler statt als Warnungen behandelt werden.

next.config.mjs
import { withGTConfig } from 'gt-next/config';

const nextConfig = {
  // Ihre anderen Next.js-Konfigurationen
};

export default withGTConfig(nextConfig, {
  // Build bei dynamischen JSX-Verstößen fehlschlagen lassen
  dynamicJsxCheckLogLevel: 'error',
  // Warnung bei dynamischen String-Verstößen ausgeben  
  dynamicStringCheckLogLevel: 'warn',
});

Hinweise

  • withGTConfig integriert die GT-Übersetzungsfunktionalität in Ihre Next.js‑App und muss in der Konfigurationsdatei im Projektstamm verwendet werden.
  • Parameter wie apiKey und projectId können direkt in der Konfiguration oder als Umgebungsvariablen festgelegt werden.
  • Erweiterte Parameter wie renderSettings und _batchInterval ermöglichen eine feingranulare Steuerung des Übersetzungsverhaltens und der Performance.

Nächste Schritte

Wie ist diese Anleitung?