Components

<GTProvider>

Référence API pour le composant <GTProvider>

Aperçu

Le composant <GTProvider> fournit un contexte de Traduction Générale (GT) à ses enfants, leur permettant d'accéder au contenu traduit. Il est requis pour toutes les traductions côté client dans votre application.

Quand l'utiliser

  • Enveloppez votre application entière dans <GTProvider> pour activer les traductions côté client.
  • Lorsque vous travaillez avec des dictionnaires, spécifiez éventuellement un id pour limiter les données de dictionnaire envoyées au client, optimisant ainsi les performances pour les dictionnaires volumineux.
  • Le composant <GTProvider> est utilisé à la fois pour les balises <T> en ligne et les dictionnaires.

Référence

Props

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

Description

PropDescription
childrenTout composant ou les parents de tout composant qui a besoin de traduire ou d'accéder aux informations de traduction côté client. Cela devrait inclure tous les composants utilisant <T>, useGT, ou d'autres utilitaires de traduction.
projectId?L'ID du projet requis pour les services cloud de General Translation.
id?L'ID d'un dictionnaire imbriqué pour limiter les données envoyées au client. Ceci est utile pour les grands projets avec des dictionnaires volumineux.
dictionary?Le dictionnaire de traduction pour le projet.
locales?La liste des locales approuvées pour le projet.
defaultLocale?La locale par défaut à utiliser si aucune autre locale n'est trouvée.
locale?La locale actuelle, si déjà définie.
cacheUrl?L'URL du service de cache pour récupérer les traductions.
runtimeUrl?L'URL du service d'exécution pour récupérer les traductions.
renderSettings?Les paramètres pour le rendu des traductions.
_versionId?L'ID de version pour récupérer les traductions.
devApiKey?La clé API pour les environnements de développement.
metadata?Métadonnées supplémentaires à transmettre au contexte.

Retourne

React.JSX.Element|undefined contenant les enfants qui ont été passés à ce composant.

Exemples

Utilisation de base

Enveloppez votre application dans <GTProvider> pour ajouter la traduction à votre application. N'oubliez pas d'ajouter une liste des locales prises en charge pour activer la traduction.

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>
);

Dictionnaires

Vous pouvez également passer un dictionnaire au composant <GTProvider> puis y accéder avec le hook useDict().

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

Pour plus d'informations sur l'utilisation des dictionnaires, consultez ce guide.

Ajout de la configuration

Si vous n'aimez pas passer les props directement au composant <GTProvider>, vous pouvez créer un fichier de configuration et le passer au composant. Il s'intègre également directement avec la commande gtx-cli translate, donc vous n'avez pas à spécifier manuellement des éléments comme les locales en tant que paramètre.

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)
}

Tout ce que vous avez à faire, c'est de passer ce fichier au composant <GTProvider>.

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

Chargeur de traduction personnalisé

Vous pouvez utiliser la prop loadTranslations pour charger des traductions depuis une source personnalisée. C'est utile lorsque vous devez charger des traductions depuis une source différente, comme une API personnalisée.

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

Paramètres de rendu

Les paramètres de rendu contrôlent le comportement de chargement des traductions. Il y a deux champs : timeout et method.

  • timeout est le nombre de millisecondes à attendre pour charger une traduction avant d'afficher un contenu de secours (par défaut : 8000ms).
  • method est la méthode à utiliser pour charger les traductions ("skeleton", "replace" ou "default").
index.js
<GTProvider renderSettings={{ method: "skeleton", timeout: 1000 }}>
  <App />
</GTProvider>

Chaque paramètre de rendu dicte un comportement de chargement différent : "skeleton" retournera null jusqu'à ce que les traductions soient chargées. "replace" retournera le contenu de secours jusqu'à ce que les traductions soient chargées. "default" retournera null jusqu'à ce que les traductions soient chargées, sauf si la locale de secours a la même langue que la locale actuelle (par exemple, en-US et en-GB). Dans ce cas, il retournera immédiatement le contenu de secours jusqu'à ce que les traductions soient chargées.


Notes

  • Le <GTProvider> doit envelopper tous les composants <T> et autres fonctions liées à la traduction. En savoir plus ici.

Prochaines étapes

  • En savoir plus sur le composant <T> pour traduire du texte et des composants.
  • Découvrez les composants et fonctions de traduction : <T>, useGT(), ou useDict().

Sur cette page