Produktion vs. Entwicklung
Unterschiede zwischen Produktions- und Entwicklungsumgebungen
Überblick
gt-next verhält sich abhängig von der Umgebung, in der Ihre Next.js-Anwendung läuft, unterschiedlich.
Die Umgebung wird ermittelt, indem die Umgebungsvariable NODE_ENV überprüft wird.
Verhalten in der Produktion
Umgebungsvariablen
In der Produktion liest gt-next nur die Umgebungsvariablen GT_PROJECT_ID und GT_API_KEY.
Der API-Schlüssel muss ein Produktions-API-Schlüssel sein und mit gtx-api- beginnen.
Wenn Sie einen Entwicklungs-API-Schlüssel verwenden, wirft gt-next einen Error.
Verhalten beim Laden von Übersetzungen
In der Production-Umgebung lädt gt-next standardmäßig Übersetzungen aus dem General Translation CDN.
Wenn Sie ein benutzerdefiniertes Ladeverhalten konfiguriert haben – etwa lokale Übersetzungen – über die Funktion loadTranslations, verwendet gt-next stattdessen dieses.
Hot-Reloading für Übersetzungen ist deaktiviert, da es sich um die Production-Umgebung handelt.
On-Demand-Übersetzung für dynamische Inhalte mit der Komponente <Tx> oder der Funktion tx ist aktiviert, jedoch nur in Server-Komponenten.
Verhalten während der Entwicklung
Umgebungsvariablen
gt-next akzeptiert die Umgebungsvariablen GT_PROJECT_ID und GT_API_KEY.
Der API-Schlüssel kann entweder ein Produktions-API-Schlüssel sein, der mit gtx-api- beginnt, oder ein Entwicklungs-API-Schlüssel, der mit gtx-dev- beginnt.
Wenn in der Entwicklungsumgebung ein Produktions-API-Schlüssel verwendet wird, verhält sich gt-next, als liefe es in Produktion.
Das bedeutet, dass das Hot-Reloading von Übersetzungen deaktiviert wird und Komponenten ohne Übersetzungen den ursprünglichen Inhalt rendern.
Ladeverhalten von Übersetzungen
In der Entwicklung versucht gt-next zunächst, Übersetzungen auf dieselbe Weise wie in der Produktion zu laden.
Diese Übersetzungen werden im Speicher gehalten.
Wenn eine Komponente (die useGT, <T> oder useTranslations verwendet) in einer anderen Sprache als der Standardsprache gerendert wird, geht gt-next wie folgt vor:
- Wird eine gültige, gespeicherte Übersetzung für den betreffenden Inhalt erkannt, wird diese gerendert.
- Falls keine Übersetzung gefunden wird, wird versucht, den Inhalt dynamisch über die General Translation API zu übersetzen.
- Nach der Übersetzung wird das Ergebnis gerendert und für die spätere Verwendung im Speicher abgelegt.
- Wenn die Übersetzung in einen Timeout läuft, wird auf den Standardwert zurückgegriffen und der Originalinhalt gerendert.
Unsere API speichert Entwicklungsübersetzungen intern für kurze Zeit zwischen. Wenn also dieselbe Übersetzung erneut angefordert wird, wird sie aus dem Cache bereitgestellt.
Diese Übersetzungen sind auf Projektebene isoliert, sodass sie nicht mit Übersetzungen anderer Projekte vermischt werden. Außerdem ist der Cache eindeutig an Entwicklungssitzungen gebunden, sodass zwischengespeicherte Übersetzungen in der Produktion nicht verwendet werden.
gt-next erkennt Änderungen an Komponenten, die useGT, <T> oder useTranslations verwenden, und übersetzt die geänderten Inhalte dynamisch über unsere API.
Produktions- vs. Entwicklungs-API Keys
Um das Produktions- und Entwicklungsverhalten von gt-next zu unterscheiden, verwenden wir die Konzepte „Production API Keys“ und „Development API Keys“.
Produktions-API-Schlüssel
Produktions-API-Schlüssel sind API-Schlüssel, die mit gtx-api- beginnen.
Wenn ein Produktions-API-Schlüssel angegeben wird, verhält sich gt-next wie im Abschnitt Produktionsverhalten beschrieben.
Das bedeutet: Selbst wenn Sie Ihre Next.js-Anwendung im Entwicklungsmodus ausführen und einen Produktions-API-Schlüssel verwenden, verhält sich gt-next, als liefe die App in der Produktion.
Das Hot-Reloading für Übersetzungen wird deaktiviert, und Komponenten ohne Übersetzungen rendern den ursprünglichen Inhalt.
Abgesehen von diesem Verhalten nutzt gt-next den Produktions-API-Schlüssel in keiner weiteren Weise.
Das CLI-Tool liest die Umgebungsvariable GT_API_KEY und akzeptiert ausschließlich Produktions-API-Schlüssel.
Das CLI-Tool wendet Abrechnung und Ratenbegrenzung unter der Kategorie „production“ an.
Development-API-Schlüssel
Development-API-Schlüssel sind API-Schlüssel, die mit gtx-dev- beginnen.
Wenn ein Development-API-Schlüssel verwendet wird, verhält sich gt-next wie im Abschnitt Development Behavior beschrieben.
Bei Verwendung eines Development-API-Schlüssels erfolgen Abrechnung und Rate-Limiting in der Kategorie „development“.
Mit einem Development-API-Schlüssel erstellte Übersetzungen werden nicht gespeichert und stehen in der Produktion nicht zur Verfügung.
Entwicklungsübersetzungen dienen dazu, Ihre Anwendung vor dem Einsatz in der Produktion zu testen.
Wie ist dieser Leitfaden?

