# gt-react: General Translation React SDK: Componenti di ramificazione
URL: https://generaltranslation.com/it/docs/react/guides/branches.mdx
---
title: Componenti di ramificazione
description: Come usare i componenti condizionali per contenuti condizionali all'interno delle traduzioni
---
{/* GENERATO AUTOMATICAMENTE: non modificare direttamente. Modifica il modello in content/docs-templates/. */}
I componenti di ramificazione consentono il rendering condizionale dei contenuti all'interno dei componenti [``](/docs/react/api/components/t). Gestiscono la logica dinamica, come le istruzioni if/else e le regole di pluralizzazione, garantendo al contempo che tutte le varianti di contenuto possano essere tradotte correttamente.
## Componenti disponibili
* [``](/docs/react/api/components/branch): Contenuto condizionale in base a valori o stati
* [``](/docs/react/api/components/plural): Pluralizzazione automatica basata su regole specifiche dell'impostazione regionale
## Guida rapida
I componenti di ramificazione funzionano all'interno di [``](/docs/react/api/components/t) per gestire la logica condizionale:
```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
}
/>
);
}
```
## Come funzionano i componenti di ramificazione
I componenti di ramificazione gestiscono il rendering condizionale nelle traduzioni:
1. **Sostituendo gli operatori ternari** e la logica condizionale all'interno di [``](/docs/react/api/components/t)
2. **Fornendo contenuti di fallback** quando le condizioni non corrispondono ai valori previsti
3. **Consentendo la traduzione** di tutte le possibili varianti di contenuto
4. **Applicando automaticamente le regole di pluralizzazione dell'impostazione regionale**
```jsx
// ❌ Questo non funziona - logica condizionale in
{isActive ? 'User is active' : 'User is inactive'}
// ✅ Questo funziona - logica condizionale con ramificazione
User is active}
false={User is inactive
}
/>
```
## Guida ai componenti
### Branch - Contenuto condizionale
Usa [``](/docs/react/api/components/branch) per qualsiasi rendering condizionale in base a valori o stati:
```jsx
// Visualizzazione stato utente
Administrator Dashboard}
user={User Dashboard
}
guest={Guest Access
}
>
Access level unknown
// Condizioni booleane
Welcome back!}
false={Please log in
}
/>
// Livelli di abbonamento
Upgrade to unlock premium features}
premium={Enjoy your premium experience
}
enterprise={Contact support for enterprise solutions
}
>
Subscription status unavailable
```
### Plurale - Pluralizzazione intelligente
Usa [``](/docs/react/api/components/plural) per i contenuti che cambiano in base alla quantità:
```jsx
// Pluralizzazione di base
{itemCount} item in cart}
other={{itemCount} items in cart
}
/>
// Gestione dello zero
No new notifications}
one={{notifications} notification
}
other={{notifications} notifications
}
/>
// Pluralizzazione complessa (segue le regole Unicode CLDR)
Due today}
one={Due in {days} day
}
few={Due in {days} days
}
many={Due in {days} days
}
other={Due in {days} days
}
/>
```
### In combinazione con i componenti variabili
La ramificazione e i componenti variabili si integrano perfettamente:
```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
```
## Quando usare i componenti di ramificazione
### Sostituisci gli operatori ternari
Converti la logica condizionale per usarla all'interno di [``](/docs/react/api/components/t):
```jsx
// ❌ Non è possibile usare l'operatore ternario in
{isActive ? Active user
: Inactive user
}
// ✅ Usa Branch al suo posto
Active user}
false={Inactive user
}
/>
```
### Gestire più condizioni
Sostituisci le istruzioni `switch` o più condizioni `if/else`:
```jsx
// ❌ Logica condizionale complessa
{status === 'loading' ? Loading...
:
status === 'error' ? Error occurred
:
status === 'success' ? Success!
:
Unknown status
}
// ✅ Logica di ramificazione pulita
Loading...}
error={Error occurred
}
success={Success!
}
>
Unknown status
```
### Regole di pluralizzazione
Sostituisci la gestione manuale dei plurali:
```jsx
// ❌ Pluralizzazione manuale
{count === 1 ? 1 item
: {count} items
}
// ✅ Pluralizzazione automatica
{count} item}
other={{count} items
}
/>
```
## Utilizzo autonomo
I componenti di ramificazione possono essere usati anche al di fuori di [``](/docs/react/api/components/t), per gestire pura logica senza traduzione:
```jsx
// Rendering condizionale puro
}
light={}
>
// Pluralizzazione pura
}
other={}
/>
```
## Problemi comuni
### Chiavi dei rami mancanti
Fornisci sempre contenuti di fallback per i valori non corrispondenti:
```jsx
// ❌ Nessun fallback per valori imprevisti
}
user={}
// E se userRole fosse "moderator"?
/>
// ✅ Includi sempre un fallback
}
user={}
>
{/* Fallback per qualsiasi altro valore */}
```
### Forme plurali incomplete
Specifica le forme plurali necessarie per la tua impostazione regionale predefinita:
```jsx
// ❌ Forma "other" mancante
1 item}
// E per 0, 2, 3, ecc.?
/>
// ✅ Includi le forme necessarie
No items}
one={1 item
}
other={{count} items
}
/>
```
### Logica nidificata complessa
Sebbene funzioni, consigliamo di mantenere semplice la logica condizionale ed evitare nidificazioni profonde:
```jsx
// ❌ Ramificazione annidata complessa
{/* Difficile da leggere e mantenere */}
// ✅ Appiattire la logica o usare più componenti
}
active-offline={}
inactive-online={}
>
```
Scopri di più sulle regole di pluralizzazione nella [documentazione CLDR di Unicode](https://cldr.unicode.org/index/cldr-spec/plural-rules).
## Passaggi successivi
* [Guida alla traduzione delle stringhe](/docs/react/guides/strings) - Traduci testo semplice senza JSX
* [Guida ai contenuti dinamici](/docs/key-concepts/dynamic-content) - Gestisci la traduzione a runtime
* Riferimenti API:
* [Componente ``](/docs/react/api/components/branch)