Produktion vs. Entwicklung
Unterschiede zwischen Produktions- und Entwicklungsumgebungen
Übersicht
gt-next verhält sich je nach 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 Produktionsumgebungen liest gt-next nur die Umgebungsvariablen GT_PROJECT_ID und GT_API_KEY.
Der API-Schlüssel muss ein Production-API-Schlüssel sein und mit gtx-api- beginnen.
Wenn Sie einen Development-API-Schlüssel verwenden, löst gt-next einen Fehler aus.
Verhalten beim Laden von Übersetzungen
In Production lädt gt-next standardmäßig Übersetzungen aus der General Translation-CDN (Content Delivery Network).
Wenn Sie ein eigenes Ladeverhalten für Übersetzungen 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 in der Entwicklungsumgebung
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.
Verhalten beim Laden von Übersetzungen
In der Entwicklung versucht gt-next zunächst, Übersetzungen auf die gleiche Weise wie in der Produktion zu laden.
Diese Übersetzungen werden im Speicher gehalten.
Beim Rendern einer Komponente (die useGT, <T> oder useTranslations verwendet) in einer anderen Sprache als der Standardsprache geht gt-next wie folgt vor:
- Wenn für den angegebenen Inhalt eine gültige, gespeicherte Übersetzung vorhanden ist, wird diese gerendert.
- Wenn keine Übersetzung gefunden wird, wird versucht, den Inhalt dynamisch über die General Translation API zu übersetzen.
- Nach dem Übersetzen wird die Übersetzung gerendert und für die zukünftige 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 im Cache. 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. Zusätzlich ist der Cache an einzelne 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 geänderte Inhalte dynamisch über unsere API.
API-Schlüssel: Produktion vs. Entwicklung
Um das Verhalten von gt-next in Produktions- und Entwicklungsumgebungen zu unterscheiden, verwenden wir „Produktions-API-Schlüssel“ und „Entwicklungs-API-Schlüssel“.
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: Wenn Sie Ihre Next.js-Anwendung im Entwicklungsmodus ausführen und einen Produktions-API-Schlüssel angeben, verhält sich gt-next, als würden Sie in der Produktion laufen.
Das Hot-Reloading von Übersetzungen wird deaktiviert, und Komponenten ohne Übersetzungen rendern den Originalinhalt.
Abgesehen davon verwendet gt-next den Produktions-API-Schlüssel in keiner weiteren Weise.
Das CLI-Tool liest die Umgebungsvariable GT_API_KEY und akzeptiert nur Produktions-API-Schlüssel.
Das CLI-Tool wendet Abrechnung und Ratenbegrenzung in 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 werden Abrechnung und Rate-Limiting der Kategorie „development“ zugeordnet.
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 diese Anleitung?