# gt-react: General Translation React SDK: Composants de branchement conditionnel
URL: https://generaltranslation.com/fr/docs/react/guides/branches.mdx
---
title: Composants de branchement conditionnel
description: Comment utiliser les composants de branchement conditionnel pour gérer du contenu conditionnel dans les traductions
---
{/* GÉNÉRÉ AUTOMATIQUEMENT : ne modifiez pas directement. Modifiez plutôt le modèle dans content/docs-templates/. */}
Les composants de branchement permettent d’afficher du contenu de manière conditionnelle dans les composants [``](/docs/react/api/components/t). Ils gèrent la logique dynamique, comme les conditions if/else et les règles de pluralisation, tout en garantissant que toutes les variantes de contenu peuvent être traduites correctement.
## Composants disponibles
* [``](/docs/react/api/components/branch) : Affiche du contenu conditionnel selon des valeurs ou des états
* [``](/docs/react/api/components/plural) : Pluralisation automatique à l’aide de règles propres au paramètre régional
## Démarrage rapide
Les composants de branchement s’utilisent dans [``](/docs/react/api/components/t) pour gérer la logique conditionnelle :
```jsx
import { T, Branch, Plural, Num, Var } from 'gt-react';
function NotificationPanel({ user, messageCount }) {
return (
{user.name} is currently online
}
away={{user.name} is away
}
>
{user.name} status unknown
You have {messageCount} message}
other={You have {messageCount} messages
}
/>
);
}
```
## Comment fonctionnent les composants de branchement
Les composants de branchement gèrent le rendu conditionnel dans les traductions en :
1. **Remplaçant les opérateurs ternaires** et la logique conditionnelle dans [``](/docs/react/api/components/t)
2. **Fournissant un contenu de remplacement** lorsque les conditions ne correspondent pas aux valeurs attendues
3. **Permettant de traduire** toutes les variantes de contenu possibles
4. **Appliquant automatiquement les règles du paramètre régional** pour la pluralisation
```jsx
// ❌ Ceci ne fonctionne pas - logique conditionnelle dans
{isActive ? 'User is active' : 'User is inactive'}
// ✅ Ceci fonctionne - logique conditionnelle avec branchement
User is active}
false={User is inactive
}
/>
```
## Guide des composants
### Branch - Contenu conditionnel
Utilisez [``](/docs/react/api/components/branch) pour tout rendu conditionnel en fonction de valeurs ou d’états :
```jsx
// Affichage du statut utilisateur
Administrator Dashboard}
user={User Dashboard
}
guest={Guest Access
}
>
Access level unknown
// Conditions booléennes
Welcome back!}
false={Please log in
}
/>
// Niveaux d'abonnement
Upgrade to unlock premium features}
premium={Enjoy your premium experience
}
enterprise={Contact support for enterprise solutions
}
>
Subscription status unavailable
```
### Pluriel - Gestion intelligente du pluriel
Utilisez [``](/docs/react/api/components/plural) pour le contenu qui varie selon la quantité :
```jsx
// Pluralisation de base
{itemCount} item in cart}
other={{itemCount} items in cart
}
/>
// Gestion du zéro
No new notifications}
one={{notifications} notification
}
other={{notifications} notifications
}
/>
// Pluralisation complexe (suit les règles Unicode CLDR)
Due today}
one={Due in {days} day
}
few={Due in {days} days
}
many={Due in {days} days
}
other={Due in {days} days
}
/>
```
### Combiner avec des composants variables
Les composants de branchement et les composants variables fonctionnent parfaitement ensemble :
```jsx
Order {order.id} is pending.
Total: {order.total}
}
shipped={
Order {order.id} shipped on {order.shippedDate}
}
delivered={
Order {order.id} was delivered successfully
}
>
Order status unknown
```
## Quand utiliser les composants de branchement
### Remplacez les opérateurs ternaires
Convertissez la logique conditionnelle afin de l’utiliser dans [``](/docs/react/api/components/t) :
```jsx
// ❌ Impossible d'utiliser un ternaire dans
{isActive ? Active user
: Inactive user
}
// ✅ Utilisez Branch à la place
Active user}
false={Inactive user
}
/>
```
### Gérer des conditions multiples
Remplacez les instructions `switch` ou les suites de conditions `if/else` :
```jsx
// ❌ Logique conditionnelle complexe
{status === 'loading' ? Loading...
:
status === 'error' ? Error occurred
:
status === 'success' ? Success!
:
Unknown status
}
// ✅ Logique de branchement claire
Loading...}
error={Error occurred
}
success={Success!
}
>
Unknown status
```
### Règles de pluriel
Remplacez la gestion manuelle des pluriels :
```jsx
// ❌ Pluralisation manuelle
{count === 1 ? 1 item
: {count} items
}
// ✅ Pluralisation automatique
{count} item}
other={{count} items
}
/>
```
## Utilisation autonome
Les composants de branchement peuvent être utilisés en dehors de [``](/docs/react/api/components/t) pour de la logique pure, sans traduction :
```jsx
// Rendu conditionnel pur
}
light={}
>
// Pluralisation pure
}
other={}
/>
```
## Problèmes fréquents
### Clés de branche manquantes
Fournissez toujours un contenu de remplacement pour les valeurs sans correspondance :
```jsx
// ❌ Aucun fallback pour les valeurs inattendues
}
user={}
// Et si userRole est "moderator" ?
/>
// ✅ Toujours inclure un fallback
}
user={}
>
{/* Fallback pour toute autre valeur */}
```
### Formes du pluriel incomplètes
Fournissez les formes du pluriel nécessaires pour votre paramètre régional par défaut :
```jsx
// ❌ Forme "other" manquante
1 item}
// Et pour 0, 2, 3, etc. ?
/>
// ✅ Inclure les formes nécessaires
No items}
one={1 item
}
other={{count} items
}
/>
```
### Logique imbriquée complexe
Bien que cela fonctionne, nous vous recommandons de garder une logique conditionnelle simple et d’éviter les imbrications trop profondes :
```jsx
// ❌ Imbrication complexe
{/* Difficile à lire et à maintenir */}
// ✅ Aplatir la logique ou utiliser plusieurs composants
}
active-offline={}
inactive-online={}
>
```
Pour en savoir plus sur les règles de pluriel, consultez la [documentation CLDR d’Unicode](https://cldr.unicode.org/index/cldr-spec/plural-rules).
## Étapes suivantes
* [Guide de traduction des chaînes](/docs/react/guides/strings) - Traduisez du texte brut sans JSX
* [Guide du contenu dynamique](/docs/key-concepts/dynamic-content) - Gérez la traduction en exécution
* Références API :
* [Composant ``](/docs/react/api/components/branch)