Production vs développement
Différences entre les environnements de production et de développement
Présentation
gt-react se comporte différemment selon l’environnement dans lequel s’exécute votre application React.
Il détecte l’environnement en vérifiant la variable d’environnement NODE_ENV.
Comportement en production
Variables d’environnement
En production, la seule variable d’environnement acceptée est GT_PROJECT_ID (ou une version préfixée, comme NEXT_PUBLIC_GT_PROJECT_ID).
Si une clé d’API est fournie en variable d’environnement, gt-react déclenchera une Error. Cela évite d’exposer des API Keys au client.
Comportement de chargement des traductions
En production, le provider gt-react tente par défaut de charger les traductions depuis le CDN de General Translation.
Si vous avez configuré un chargement personnalisé des traductions, par exemple des traductions locales, via la fonction loadTranslations, gt-react l’utilisera à la place.
Le rechargement à chaud des traductions est désactivé en production.
Comportement en développement
Variables d’environnement
Étant donné que le développement est local et non exposé à des utilisateurs externes, gt-react accepte toutes les variables d’environnement General Translation, même si elles sont préfixées par NEXT_PUBLIC_, VITE_ (ou similaire).
Comportement de chargement des traductions
En développement, le provider gt-react tente d’abord de charger les traductions de la même manière qu’en production.
Ces traductions sont chargées en mémoire.
Lors du rendu d’un composant (qui utilise useGT, <T> ou useTranslations) dans une langue différente de celle par défaut, le provider gt-react procède comme suit :
- S’il détecte une traduction valide et stockée pour le contenu donné, il affiche cette traduction.
- Si aucune traduction n’est trouvée, il tente de traduire dynamiquement le contenu via la General Translation API.
- Une fois la traduction effectuée, elle est affichée et stockée en mémoire pour un usage ultérieur.
- En cas de dépassement de délai, un contenu de secours est utilisé et le contenu original est affiché.
Notre API met également en cache en interne les traductions de développement pendant une courte période ; ainsi, si la même traduction est redemandée, elle sera servie depuis le cache.
Ces traductions sont isolées au niveau du projet, elles ne seront donc pas mélangées avec celles d’autres projets. De plus, le cache est propre aux sessions de développement, donc les traductions mises en cache ne seront pas utilisées en production.
gt-react détecte les modifications apportées aux composants qui utilisent useGT, <T> ou useTranslations et traduit dynamiquement le contenu modifié via notre API.
API Keys de production et de développement
Pour distinguer le comportement de gt-react en production et en développement, nous utilisons les notions d’« API Keys de production » et d’« API Keys de développement ».
API Keys de production
Les API Keys de production sont des API keys qui commencent par gtx-api-.
Lorsqu’une API key de production est fournie, gt-react se comportera comme décrit dans la section Comportement en production.
Cela signifie que si vous exécutez votre application React en mode développement et que vous fournissez une API key de production, gt-react se comportera comme si vous étiez en production.
Le rechargement à chaud des traductions sera désactivé et les composants sans traductions afficheront le contenu d’origine.
À part ce comportement, gt-react n’utilisera pas l’API key de production d’une quelconque autre manière.
La raison pour laquelle nous vous demandons de créer une API key de production distincte lors de la mise en production est que l’outil CLI n’accède qu’aux API Keys de production.
L’outil CLI appliquera la facturation et la limitation de débit en utilisant la catégorie « production ».
API Keys de développement
Les clés d’API de développement sont des clés d’API commençant par gtx-dev-.
Lorsqu’une clé d’API de développement est fournie, gt-react se comporte comme décrit dans la section Comportement en développement.
Avec une clé d’API de développement, la facturation et la limitation de débit s’appliquent sous la catégorie « development ».
Les traductions créées avec une clé d’API de développement ne sont pas stockées et ne seront pas disponibles en production.
Les traductions de développement ont pour but de vous permettre de tester votre application avant la mise en production.
Que pensez-vous de ce guide ?

