Produktion vs Entwicklung
Unterschiede zwischen Produktions- und Entwicklungsumgebungen
Überblick
gt-react
verhält sich unterschiedlich, je nachdem in welcher Umgebung Ihre React-Anwendung ausgeführt wird.
Es erkennt die Umgebung, indem es die Umgebungsvariable NODE_ENV
überprüft.
Produktionsverhalten
Umgebungsvariablen
In der Produktion ist die einzige akzeptierte Umgebungsvariable GT_PROJECT_ID
(oder eine Version mit Präfix, wie z.B. NEXT_PUBLIC_GT_PROJECT_ID
).
Wenn ein API-Schlüssel als Umgebungsvariable bereitgestellt wird, wird gt-react
einen Fehler auslösen. Dies verhindert, dass API-Schlüssel dem Client zugänglich gemacht werden.
Verhalten beim Laden von Übersetzungen
In der Produktion versucht der gt-react
-Provider 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
, wird gt-react
stattdessen diese verwenden.
Das Hot-Reloading von Übersetzungen ist deaktiviert, da es sich um die Produktionsumgebung handelt.
Entwicklungsverhalten
Umgebungsvariablen
Da die Entwicklung lokal stattfindet und nicht für externe Benutzer zugänglich ist, akzeptiert gt-react
alle General Translation Umgebungsvariablen, auch wenn sie mit NEXT_PUBLIC_
, VITE_
(oder ähnlichem) präfixiert sind.
Verhalten beim Laden von Übersetzungen
In der Entwicklung versucht der gt-react
Provider zunächst, Übersetzungen auf die gleiche Weise wie in der Produktion zu laden.
Diese Übersetzungen werden im Speicher abgelegt.
Beim Rendern einer Komponente (die useGT()
, <T>
oder useDict()
verwendet) in einer anderen Sprache als der Standardsprache, führt der gt-react
Provider Folgendes aus:
- Wenn eine gültige, gespeicherte Übersetzung für den gegebenen Inhalt erkannt wird, wird die Übersetzung gerendert.
- Wenn keine Übersetzung gefunden wird, wird versucht, den Inhalt dynamisch über die General Translation API zu übersetzen.
- Nach der Übersetzung wird die Übersetzung gerendert und für zukünftige Verwendung im Speicher abgelegt.
- Wenn die Übersetzung eine Zeitüberschreitung hat, wird auf den ursprünglichen Inhalt zurückgegriffen.
Unsere API speichert intern auch Entwicklungsübersetzungen für einen kurzen Zeitraum im Cache, sodass bei erneuter Anforderung derselben Übersetzung diese aus dem Cache bereitgestellt wird.
Diese Übersetzungen sind auf Projektebene isoliert, sodass sie nicht mit Übersetzungen aus anderen Projekten vermischt werden. Darüber hinaus ist der Cache einzigartig für Entwicklungssitzungen, sodass zwischengespeicherte Übersetzungen nicht in der Produktion verwendet werden.
gt-react
erkennt Änderungen an Komponenten, die useGT()
, <T>
oder useDict()
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-react
zu unterscheiden, haben wir 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 bereitgestellt wird, verhält sich gt-react
wie im Abschnitt Produktionsverhalten beschrieben.
Das bedeutet, wenn Sie Ihre React-Anwendung im Entwicklungsmodus ausführen und einen Produktions-API-Schlüssel bereitstellen, verhält sich gt-react
so, als wären Sie in der Produktion.
Das Hot-Reloading von Übersetzungen wird deaktiviert, und Komponenten ohne Übersetzungen rendern den ursprünglichen Inhalt.
Abgesehen von diesem Verhalten wird gt-react
den Produktions-API-Schlüssel in keiner Weise verwenden.
Der Grund, warum wir Sie bitten, einen separaten Produktions-API-Schlüssel für den Einsatz in der Produktion zu erstellen, ist, dass das CLI-Tool nur auf Produktions-API-Schlüssel zugreift.
Das CLI-Tool wird Abrechnung und Rate-Limiting in der Kategorie "Produktion" anwenden.
Entwicklungs-API-Schlüssel
Entwicklungs-API-Schlüssel sind API-Schlüssel, die mit gtx-dev-
beginnen.
Wenn ein Entwicklungs-API-Schlüssel bereitgestellt wird, verhält sich gt-react
wie im Abschnitt Entwicklungsverhalten beschrieben.
Bei Verwendung eines Entwicklungs-API-Schlüssels werden Abrechnung und Rate-Limiting in der Kategorie "Entwicklung" angewendet.
Übersetzungen, die mit einem Entwicklungs-API-Schlüssel erstellt wurden, werden nicht gespeichert und stehen nicht für den Einsatz in der Produktion zur Verfügung.
Der Zweck von Entwicklungsübersetzungen ist es, Ihnen zu ermöglichen, Ihre Anwendung zu testen, bevor Sie sie in die Produktion überführen.
Wie ist dieser Leitfaden?