Components

<GTProvider>

API-Referenz für die <GTProvider>-Komponente

Übersicht

Die <GTProvider>-Komponente stellt den General Translation (GT) Kontext für ihre Kindkomponenten bereit, sodass diese auf übersetzte Inhalte zugreifen können. Sie ist erforderlich für alle clientseitigen Übersetzungen in Ihrer Anwendung.

Wann verwenden

  • Um Übersetzungen auf dem Client zu ermöglichen, umschließen Sie Ihre gesamte Anwendung mit <GTProvider>.
  • Wenn Sie mit Wörterbüchern arbeiten, können Sie optional eine id angeben, um die an den Client gesendeten Wörterbuchdaten zu begrenzen und so die Leistung bei großen Wörterbüchern zu optimieren.
  • Die <GTProvider>-Komponente wird sowohl für Inline-<T> als auch für Wörterbücher verwendet.

Referenz

Props

PropTypeDefault
metadata??
object
-
devApiKey??
string
-
_versionId??
string
-
renderSettings??
RenderSettings
defaultRenderSettings
runtimeUrl??
string
'https://runtime.gtx.dev'
cacheUrl??
string
'https://cdn.gtx.dev'
locale??
string
-
defaultLocale??
string
libraryDefaultLocale
locales??
string[]
-
dictionary??
Dictionary
defaultDictionary
id??
string
undefined
projectId?
string
-
children?
ReactNode
-

Beschreibung

PropBeschreibung
childrenJede Komponente oder die übergeordneten Elemente jeder Komponente, die auf der Clientseite übersetzen oder auf Übersetzungsinformationen zugreifen muss. Diese sollten alle Komponenten umfassen, die <T>, useGT oder andere Übersetzungshilfsmittel verwenden.
projectId?Die Projekt-ID, die für General Translation Cloud-Dienste erforderlich ist.
id?Die ID eines verschachtelten Wörterbuchs, um die an den Client gesendeten Daten zu begrenzen. Dies ist nützlich für große Projekte mit umfangreichen Wörterbüchern.
dictionary?Das Übersetzungswörterbuch für das Projekt.
locales?Die Liste der genehmigten Sprachen für das Projekt.
defaultLocale?Die Standardsprache, die verwendet wird, wenn keine andere Sprache gefunden wird.
locale?Die aktuelle Sprache, falls bereits festgelegt.
cacheUrl?Die URL des Cache-Dienstes zum Abrufen von Übersetzungen.
runtimeUrl?Die URL des Laufzeitdienstes zum Abrufen von Übersetzungen.
renderSettings?Die Einstellungen für das Rendern von Übersetzungen.
_versionId?Die Versions-ID zum Abrufen von Übersetzungen.
devApiKey?Der API-Schlüssel für Entwicklungsumgebungen.
metadata?Zusätzliche Metadaten, die an den Kontext übergeben werden sollen.

Rückgabewert

React.JSX.Element|undefined, das die Kinder enthält, die an diese Komponente übergeben wurden.

Beispiele

Grundlegende Verwendung

Wickeln Sie Ihre Anwendung in <GTProvider>, um Übersetzungen zu Ihrer App hinzuzufügen. Vergessen Sie nicht, eine Liste der unterstützten Sprachen hinzuzufügen, um Übersetzungen zu aktivieren.

index.js
import { StrictMode } from "react";
import { createRoot } from "react-dom/client";
import "./index.css";
import App from "./App.tsx";
import { GTProvider } from "gt-react";

createRoot(document.getElementById("root")!).render(
  <StrictMode>
    <GTProvider locales={['es', 'fr']}> // Enable Spanish and French // [!code highlight]
      <App />
    </GTProvider> // [!code highlight]
  </StrictMode>
);

Wörterbücher

Sie können dem <GTProvider>-Komponenten auch ein Wörterbuch übergeben und dann mit dem useDict() Hook darauf zugreifen.

index.js
import dictionary from "./dictionary.js";

createRoot(document.getElementById("root")!).render(
  <StrictMode>
    <GTProvider locales={['es', 'fr']} dictionary={dictionary}> // [!code highlight]
      <App />
    </GTProvider>
  </StrictMode>
);

Weitere Informationen zur Verwendung von Wörterbüchern finden Sie in diesem Leitfaden.

Konfiguration hinzufügen

Wenn Sie kein Fan davon sind, Props direkt an die <GTProvider>-Komponente zu übergeben, können Sie eine Konfigurationsdatei erstellen und diese an die Komponente übergeben. Sie integriert sich auch direkt mit dem gtx-cli translate Befehl, sodass Sie Dinge wie Sprachen nicht manuell als Parameter angeben müssen.

gt.config.json
{
  "projectId": "your-project-id",
  "locales": ["es", "fr"],
  "defaultLocale": "en-US",
  "_versionId": "translation-version-id" // allows for rolling back to previous translations (autogenerated by the CLI)
}

Alles, was Sie tun müssen, ist, dies an die <GTProvider>-Komponente zu übergeben.

index.js
import config from "../gt.config.json";

createRoot(document.getElementById("root")!).render(
  <StrictMode>
    <GTProvider {...config}> // [!code highlight]
      <App />
    </GTProvider>
  </StrictMode>
);

Benutzerdefinierter Übersetzungs-Loader

Sie können das loadTranslations-Prop verwenden, um Übersetzungen aus einer benutzerdefinierten Quelle zu laden. Das ist nützlich, wenn Sie Übersetzungen aus einer anderen Quelle laden müssen, wie z. B. einer eigenen API.

index.js
import loadTranslations from "./loadTranslations";

createRoot(document.getElementById("root")!).render(
  <StrictMode>
    <GTProvider locales={['es', 'fr']} loadTranslations={loadTranslations}> // [!code highlight]
      <App />
    </GTProvider>
  </StrictMode>
);

Render-Einstellungen

Die Render-Einstellungen steuern das Ladeverhalten für Übersetzungen. Es gibt zwei Felder: timeout und method.

  • timeout ist die Anzahl der Millisekunden, die auf das Laden einer Übersetzung gewartet wird, bevor ein Fallback angezeigt wird (Standard: 8000ms).
  • method ist die Methode, die zum Laden der Übersetzungen verwendet wird ("skeleton", "replace" oder "default").
index.js
<GTProvider renderSettings={{ method: "skeleton", timeout: 1000 }}>
  <App />
</GTProvider>

Jede Render-Einstellung bestimmt ein anderes Ladeverhalten: "skeleton" gibt null zurück, bis die Übersetzungen geladen sind. "replace" gibt den Fallback-Inhalt zurück, bis die Übersetzungen geladen sind. "default" gibt null zurück, bis die Übersetzungen geladen sind, es sei denn, die Fallback-Sprache hat die gleiche Sprache wie die aktuelle Sprache (z. B. en-US und en-GB). In diesem Fall wird der Fallback-Inhalt sofort angezeigt, bis die Übersetzungen geladen sind.


Hinweise

  • Der <GTProvider> muss alle <T>-Komponenten und andere übersetzungsbezogene Funktionen umschließen. Erfahre mehr hier.

Nächste Schritte

Wie ist dieser Leitfaden?