Production vs développement
Différences entre les environnements de production et de développement
Aperçu
gt-react se comporte différemment selon l’environnement dans lequel votre application React s’exécute.
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 comme variable d’environnement, gt-react déclenchera une Error. Cela évite que des API Keys ne soient exposées au client.
Comportement de chargement des traductions
En production, le provider gt-react tente par défaut de charger les traductions depuis le CDN (Content Delivery Network) de General Translation.
Si vous avez configuré un chargement personnalisé des traductions, par exemple des traductions locales, via la fonction loadTranslations, gt-react utilisera cette configuration à la place.
Le rechargement à chaud des traductions est désactivé en production.
Comportement en développement
Variables d’environnement
Comme le développement est local et non exposé à des utilisateurs externes, gt-react accepte toutes les variables d’environnement de 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 essaiera 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 la langue par défaut, le provider gt-react procédera comme suit :
- S’il détecte une traduction valide stockée pour le contenu donné, il affichera cette traduction.
- Si aucune traduction n’est trouvée, il tentera de traduire dynamiquement le contenu via la General Translation API.
- Après la traduction, celle-ci sera affichée et stockée en mémoire pour une utilisation ultérieure.
- En cas de dépassement de délai, il appliquera un secours et affichera le contenu d’origine.
Notre API met également en cache en interne les traductions en développement pendant une courte période. Ainsi, si la même traduction est demandée à nouveau, elle sera servie depuis le cache.
Ces traductions sont isolées au niveau du projet, elles ne seront donc pas mêlées à celles d’autres projets. De plus, le cache est propre aux sessions de développement ; les traductions mises en cache ne seront donc pas utilisées en production.
gt-react détectera les changements apportés aux composants qui utilisent useGT, <T> ou useTranslations, et traduira 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 commençant 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 traduction afficheront le contenu d’origine.
En dehors de ce comportement, gt-react n’utilisera pas la clé d’API 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 sous la catégorie « production ».
API Keys de développement
Les API Keys de développement sont des clés d’API commençant par gtx-dev-.
Lorsqu’une API Key de développement est fournie, gt-react se comportera comme décrit dans la section Comportement en développement.
Lors de l’utilisation d’une API Key de développement, la facturation et la limitation de débit seront appliquées sous la catégorie « development ».
Les traductions créées avec une API Key de développement ne seront 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 son déploiement en production.
Comment trouvez-vous ce guide ?