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.

Die Umgebung wird ermittelt, indem die Umgebungsvariable NODE_ENV geprüft wird.

Verhalten in Produktionsumgebungen

Umgebungsvariablen

In der Produktion ist die einzige zulässige Umgebungsvariable GT_PROJECT_ID (oder eine Variante mit Präfix, z. B. NEXT_PUBLIC_GT_PROJECT_ID).

Wenn ein API-Schlüssel als Umgebungsvariable gesetzt wird, wirft gt-react einen Error. Dadurch wird verhindert, dass API-Schlüssel an den Client gelangen.

Verhalten beim Laden von Übersetzungen

In der Produktion lädt der gt-react-Provider standardmäßig Übersetzungen über das General Translation CDN.

Wenn Sie ein benutzerdefiniertes Ladeverhalten eingerichtet haben, etwa lokale Übersetzungen, verwendet gt-react stattdessen die Funktion loadTranslations.

Hot Reloading für Übersetzungen ist in der Produktionsumgebung deaktiviert.

Verhalten während der Entwicklung

Umgebungsvariablen

Da die Entwicklung lokal stattfindet und nicht für externe Nutzer sichtbar ist, akzeptiert gt-react alle Umgebungsvariablen von General Translation, selbst wenn sie mit NEXT_PUBLIC_, VITE_ (oder ähnlich) versehen 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 vorgehalten.

Wenn eine Komponente (die useGT, <T> oder useTranslations verwendet) in einer anderen Sprache als der Standardsprache gerendert wird, führt der gt-react-Provider Folgendes aus:

  1. Erkennt er eine gültige, bereits gespeicherte Übersetzung für den jeweiligen Inhalt, rendert er diese.
  2. Wird keine Übersetzung gefunden, versucht er, den Inhalt dynamisch über die General Translation API zu übersetzen.
  3. Nach der Übersetzung wird die Übersetzung gerendert und für die zukünftige Verwendung im Speicher abgelegt.
  4. Wenn die Übersetzung in einen Timeout läuft, wird auf den Standardwert zurückgegriffen und der Originalinhalt gerendert.

Unsere API cached Entwicklungsübersetzungen intern auch für kurze Zeit. Wird dieselbe Übersetzung erneut angefordert, wird sie aus dem Cache geliefert.

Diese Übersetzungen sind auf Projektebene isoliert und werden daher nicht mit Übersetzungen anderer Projekte vermischt. Zudem ist der Cache an 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 die geänderten Inhalte dynamisch über unsere API.

Production- vs Development-API Keys

Um das Produktions- vom Entwicklungsverhalten von gt-react klar zu trennen, verwenden wir die Konzepte „Production API Keys“ und „Development API Keys“.

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-react wie im Abschnitt Produktionsverhalten beschrieben.

Das bedeutet, dass gt-react sich so verhält, als liefen Sie in der Produktion, selbst wenn Sie Ihre React-Anwendung im Entwicklungsmodus ausführen und einen Produktions-API-Schlüssel verwenden. Hot-Reloading für Übersetzungen wird deaktiviert, und Komponenten ohne Übersetzungen geben den Originalinhalt 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 nur auf Produktions-API-Schlüssel zugreift.

Das CLI-Tool wendet Abrechnung und Ratenbegrenzung in 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 ausschließlich dazu, Ihre Anwendung vor dem Produktionsstart zu testen.

Wie ist dieser Leitfaden?

Produktion vs. Entwicklung