Produktion vs. Entwicklung
Unterschiede zwischen Produktions- und Entwicklungsumgebungen
Überblick
gt-react verhält sich je nach Umgebung, in der Ihre React-Anwendung läuft, unterschiedlich.
Es erkennt die Umgebung, indem es die Umgebungsvariable NODE_ENV prüft.
Verhalten in der Produktion
Umgebungsvariablen
In der Produktion ist die einzige zulässige Umgebungsvariable GT_PROJECT_ID (oder eine Version mit Präfix, wie NEXT_PUBLIC_GT_PROJECT_ID).
Wenn ein API-Schlüssel als Umgebungsvariable gesetzt wird, löst gt-react einen Error aus. Dies soll verhindern, dass API-Schlüssel auf der Client-Seite offengelegt werden.
Verhalten beim Laden von Übersetzungen
Im Produktionsbetrieb versucht der gt-react-Provider standardmäßig, Übersetzungen aus dem General Translation-CDN zu laden.
Wenn Sie ein benutzerdefiniertes Ladeverhalten für Übersetzungen konfiguriert haben, etwa lokale Übersetzungen über die Funktion loadTranslations, verwendet gt-react stattdessen dieses.
Hot-Reloading für Übersetzungen ist deaktiviert, da es sich um den Produktionsbetrieb handelt.
Verhalten in der Entwicklungsumgebung
Umgebungsvariablen
Da die Entwicklung lokal stattfindet und nicht für externe Nutzer sichtbar ist, akzeptiert gt-react beliebige General Translation-Umgebungsvariablen, selbst 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 gehalten.
Beim Rendern einer Komponente (die useGT, <T> oder useTranslations verwendet) in einer anderen Sprache als der Standardsprache führt der gt-react-Provider Folgendes aus:
- Erkennt er eine gültige, gespeicherte Übersetzung für den betreffenden Inhalt, wird diese gerendert.
- Wird keine Übersetzung gefunden, versucht er, den Inhalt dynamisch über die General Translation API zu übersetzen.
- Nach der Übersetzung 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 puffert Entwicklungsübersetzungen intern für kurze Zeit, sodass bei einer erneuten Anfrage derselben Übersetzung diese aus dem Cache bereitgestellt wird.
Diese Übersetzungen sind auf Projektebene isoliert und werden nicht mit Übersetzungen anderer Projekte vermischt. Außerdem ist der Cache an einzelne Entwicklungssitzungen gebunden, sodass zwischengespeicherte Übersetzungen in der Produktion nicht verwendet werden.
gt-react erkennt Änderungen an Komponenten, die useGT, <T> oder useTranslations verwenden, und übersetzt geänderte Inhalte dynamisch über unsere API.
Produktions- vs. Entwicklungs-API-Schlüssel
Um das Verhalten von gt-react in Produktion und Entwicklung klar zu unterscheiden, verwenden wir die Begriffe „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 verwendet 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 angeben, verhält sich gt-react, als wäre die Anwendung im Produktionsmodus.
Hot-Reloading für Übersetzungen wird deaktiviert und Komponenten ohne Übersetzungen geben den ursprünglichen Inhalt aus.
Abgesehen davon nutzt gt-react den Produktions-API-Schlüssel in keiner weiteren Weise.
Der Grund, warum wir Sie bitten, für den Live-Betrieb einen separaten Produktions-API-Schlüssel zu erstellen, ist, dass das CLI-Tool ausschließlich auf Produktions-API-Schlüssel zugreift.
Das CLI-Tool wendet Abrechnung und Ratenbegrenzung unter 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 verwendet wird, verhält sich gt-react wie im Abschnitt Entwicklungsverhalten beschrieben.
Bei Verwendung eines Entwicklungs-API-Schlüssels werden Abrechnung und Ratenbegrenzung der Kategorie „development“ zugeordnet.
Mit einem Entwicklungs-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?