Retour

gt-react@10.8.0

Ernest McCarter avatarErnest McCarter
gt-react10.8.0feature flagsi18ntranslation

Vue d’ensemble

Dans gt-react 10.8.0, nous avons ajouté la prise en charge des feature flags via le champ enableI18n. Cela vous permet de désactiver l’internationalisation de manière conditionnelle, avec prise en charge des modèles de chargement synchrones et asynchrones.


Comportement synchrone

Quand enableI18n est défini sur false, la fonctionnalité i18n est désactivée en :

  • Limitant la liste des locales à la seule locale par défaut
  • Définissant la locale de l’utilisateur sur la locale par défaut
<GTProvider enableI18n={false}>
  {/* i18n désactivée - seule la locale par défaut est disponible */}
</GTProvider>

Comportement asynchrone

Pour les feature flags dynamiques, utilisez enableI18nLoaded pour indiquer l’état de chargement :

<GTProvider 
  enableI18n={featureFlag} 
  enableI18nLoaded={isLoaded}
>
  {/* Contenu */}
</GTProvider>

Lorsque enableI18nLoaded n’est pas undefined :

  • false : le feature flag est en cours de chargement (utilise la valeur par défaut de enableI18n)
  • true : le feature flag a terminé son chargement

Pendant le chargement, la bibliothèque vérifie le cookie generaltranslation.enable-i18n pour déterminer l’état actuel. Une fois le chargement terminé, la valeur explicite de enableI18n est prioritaire.


Considérations SSG/SSR

Avec SSG, le premier cycle de rendu est sacrifié lorsque la valeur par défaut de enableI18n est false, car la génération statique ne peut pas déterminer l’état du feature flag au moment de l’exécution.

SSR se comporte actuellement de manière similaire, mais nous prévoyons d’ajouter une prise en charge SSR complète pour le Pages Router de Next.js dans de futures versions. Pour l’App Router de Next.js, utilisez plutôt gt-next.