Produktion vs Entwicklung
Unterschiede zwischen Produktions- und Entwicklungsumgebungen
Übersicht
gt-next
verhält sich unterschiedlich, je nachdem, in welcher Umgebung Ihre Next.js-Anwendung ausgeführt wird.
Es erkennt die Umgebung, indem es die Umgebungsvariable NODE_ENV
überprüft.
Produktionsverhalten
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, der mit gtx-api-
beginnt.
Wenn Sie einen Entwicklungs-API-Schlüssel verwenden, gibt gt-next
einen Fehler aus.
Verhalten beim Laden von Übersetzungen
In der Produktion versucht gt-next
standardmäßig, Übersetzungen vom General Translation CDN zu laden.
Wenn Sie ein benutzerdefiniertes Verhalten zum Laden von Übersetzungen konfiguriert haben, wie z. B. lokale Übersetzungen über die Funktion loadTranslations
, verwendet gt-next
stattdessen dieses.
Das Hot-Reloading von Übersetzungen ist deaktiviert, da es sich um die Produktion handelt.
On-Demand-Übersetzungen für dynamische Inhalte mit der <Tx>
-Komponente oder der Funktion tx()
sind aktiviert, aber nur in Server-Komponenten.
Entwicklungsverhalten
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 ein Produktions-API-Schlüssel in der Entwicklung bereitgestellt wird, verhält sich gt-next
so, als ob Sie sich in der Produktion befinden.
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 in den Arbeitsspeicher geladen.
Beim Rendern einer Komponente (die useGT()
, <T>
oder useTranslations()
verwendet) in einer anderen Sprache als der Standardsprache führt gt-next
folgende Schritte aus:
- Wenn es eine gültige, gespeicherte Übersetzung für den gegebenen Inhalt erkennt, wird es die Übersetzung rendern.
- Wenn keine Übersetzung gefunden wird, versucht es, den Inhalt dynamisch über die General Translation API zu übersetzen.
- Nach der Übersetzung wird die Übersetzung gerendert und für zukünftige Verwendung im Arbeitsspeicher gespeichert.
- Wenn die Übersetzung eine Zeitüberschreitung hat, fällt es zurück und rendert den ursprünglichen Inhalt.
Unsere API speichert Entwicklungsübersetzungen auch intern für kurze Zeit zwischen, sodass bei einer erneuten Anfrage derselben Übersetzung diese aus dem Cache bereitgestellt wird.
Diese Übersetzungen sind auf Projektebene isoliert, sodass sie nicht mit Übersetzungen anderer Projekte vermischt werden. Zusätzlich ist der Cache einzigartig für Entwicklungssitzungen, sodass zwischengespeicherte Übersetzungen nicht in der Produktion verwendet werden.
gt-next
erkennt Änderungen an Komponenten, die useGT()
, <T>
oder useTranslations()
verwenden, und übersetzt den geänderten Inhalt dynamisch über unsere API.
Produktions- vs. Entwicklungs-API-Schlüssel
Um zwischen dem Produktions- und Entwicklungsverhalten von gt-next
zu unterscheiden, gibt es das Konzept der „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, dass wenn Sie Ihre Next.js-Anwendung im Entwicklungsmodus ausführen und einen Produktions-API-Schlüssel angeben, sich gt-next
so verhält, als wären Sie in der Produktion.
Das Hot-Reloading von Übersetzungen wird deaktiviert und Komponenten ohne Übersetzungen zeigen den Originalinhalt an.
Abgesehen von diesem Verhalten wird gt-next
den Produktions-API-Schlüssel in keiner anderen Weise verwenden.
Das CLI-Tool liest die Umgebungsvariable GT_API_KEY
und akzeptiert nur Produktions-API-Schlüssel.
Das CLI-Tool wendet Abrechnung und Ratenbegrenzung mit der Kategorie „production“ an.
Entwicklungs-API-Schlüssel
Entwicklungs-API-Schlüssel sind API-Schlüssel, die mit gtx-dev-
beginnen.
Wenn ein Entwicklungs-API-Schlüssel angegeben wird, verhält sich gt-next
wie im Abschnitt Entwicklungsverhalten beschrieben.
Bei Verwendung eines Entwicklungs-API-Schlüssels werden Abrechnung und Ratenbegrenzung mit der Kategorie „development“ angewendet.
Übersetzungen, die mit einem Entwicklungs-API-Schlüssel erstellt wurden, werden nicht gespeichert und stehen in der Produktion nicht zur Verfügung.
Der Zweck von Entwicklungsübersetzungen ist es, Ihnen zu ermöglichen, Ihre Anwendung vor der Auslieferung in die Produktion zu testen.
Wie ist dieser Leitfaden?