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:

  1. Wenn eine gültige, gespeicherte Übersetzung für den gegebenen Inhalt erkannt wird, wird die Übersetzung gerendert.
  2. Wenn keine Übersetzung gefunden wird, wird versucht, den Inhalt dynamisch über die General Translation API zu übersetzen.
  3. Nach der Übersetzung wird die Übersetzung gerendert und für zukünftige Verwendung im Speicher abgelegt.
  4. 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?