Config

withGTConfig

API-Referenz für withGTConfig(), früher initGT()

Übersicht

withGTConfig ist der wichtigste 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 ältere/Legacy-Methode zur Konfiguration der Bibliothek gt-next. Sie gibt eine Callback-Funktion zurück, die anschließend am Objekt NextConfig 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 (Fallback-Sprache).
  • API-Schlüssel und Projekt-IDs für den Zugriff auf GT-Dienste festzulegen.
  • Das Ladeverhalten festzulegen.
  • Zeitüberschreitungen zu konfigurieren.
  • Benutzerdefinierte 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 gt.config.json-Datei 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 gt.config.json. Daher empfehlen wir, die gt.config.json als maßgebliche Quelle (Source of Truth) für Ihre App zu verwenden.

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

Erforderliche Props

Prop

Type

Empfohlene Props

Prop

Type

PropBeschreibung
defaultLocaleStandardmäßige locale der Anwendung. Englisch dient als Standardwert, wenn keine festgelegt ist.
localesEine ausschließliche Liste der unterstützten locales für die Anwendung. Bei einer nicht unterstützten Anfrage wird auf die nächste bevorzugte Browsersprache in der Liste umgeleitet. Fällt auf defaultLocale zurück, wenn keine Übereinstimmung gefunden wird.
descriptionEine natürlichsprachige Beschreibung der Website zur Unterstützung der Übersetzung.

Erweiterte Props

Prop

Type

PropDescription
projectIdProjekt-ID, die hier oder als Umgebungsvariable angegeben werden kann.
apiKeyNicht empfohlen, kann aber hier angegeben werden. Alternativ als Umgebungsvariable.
devApiKeyNicht empfohlen, kann aber hier als Entwicklungs-API-Schlüssel angegeben werden. Alternativ als Umgebungsvariable.
preferredModelProviderIhr bevorzugter KI-Modellanbieter. Derzeit sind nur Anthropic oder OpenAI verfügbar. Lassen Sie dieses Feld leer, ermitteln wir pro Übersetzung den besten Anbieter. In Zeiten hoher Auslastung oder wenn ein Anbieter nicht verfügbar ist, können wir nicht garantieren, dass Ihr bevorzugter Anbieter verwendet wird.
runtimeUrlBasis-URL für die GT-API. Um automatische Übersetzungen zu deaktivieren, auf einen leeren String setzen.
cacheUrlURL, unter der zwischengespeicherte Übersetzungen abgelegt werden. Kann angepasst werden, um auf einen eigenen Cache-Server zu verweisen.
cacheExpiryTimeZeit in Millisekunden, nach der lokal zwischengespeicherte Übersetzungen verfallen.
renderSettingsObjekt, das das Ladeverhalten für Laufzeitübersetzungen festlegt.
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 Anfragerate zu steuern.
dictionaryOptionaler Konfigurationspfad für das Wörterbuch. Ähnlich wie bei i18n kann ein String zur Angabe eines benutzerdefinierten Pfads verwendet werden. Wörterbücher namens dictionary.js (oder .jsx, .ts, .tsx etc.) und im Projektwurzelverzeichnis oder im Ordner src werden standardmäßig unterstützt.
dynamicJsxCheckLogLevelSteuert die Prüfung von nicht umschlossenem dynamischem Inhalt in Übersetzungskomponenten. Auf "error" setzen, um Builds fehlschlagen zu lassen, "warn" für Warnungen oder "off", um die Prüfung zu deaktivieren.
dynamicStringCheckLogLevelSteuert die Prüfung von Argumenten der Übersetzungsfunktion, um sicherzustellen, dass String-Literale verwendet werden. Auf "error" setzen, um Builds fehlschlagen zu lassen, "warn" für Warnungen oder "off", um die Prüfung zu deaktivieren.

Rückgabe

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

Ausnahmen

Löst eine Error aus, wenn die projectId fehlt und Standard-URLs verwendet werden, oder wenn ein 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 aus dem Cache kommt, ist die Reaktionszeit so kurz, dass ein spezielles Ladeverhalten nicht erforderlich ist.

Prop

Type

PropDescription
methodDie Methode, mit der die Seite gerendert wird. Optionen sind skeleton, replace und default.
timeoutDie Zeit in Millisekunden, bevor die Methode wegen Zeitüberschreitung abbricht. Standard: 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 Übersetzungen zur Laufzeit, also für Ü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 Standard-Zeitüberschreitung von 10 Sekunden für serverlose Funktionen haben.


Beispiele

Rendereinstellungen

Dieses Beispiel konfiguriert gt-next, sodass während des Ladens der Übersetzungen ein Skeleton angezeigt wird. Wenn das Laden der Übersetzungen länger als 8 Sekunden dauert, läuft die Methode in ein 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 anderen 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, {
  // Builds bei dynamischen JSX-Verstößen fehlschlagen lassen
  dynamicJsxCheckLogLevel: 'error',
  // Bei dynamischen String-Verstößen warnen  
  dynamicStringCheckLogLevel: 'warn',
});

Hinweise

  • withGTConfig integriert die GT-Übersetzungsfunktionen in deine Next.js-App und muss in der Root-Konfigurationsdatei 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 fein granulare Steuerung des Übersetzungsverhaltens und der Performance.

Nächste Schritte

Wie ist dieser Leitfaden?

withGTConfig