# gt-next: General Translation Next.js SDK: Componenti di branching
URL: https://generaltranslation.com/it/docs/next/guides/branches.mdx
---
title: Componenti di branching
description: Come usare i componenti di branching per gestire contenuti condizionali nelle traduzioni
---
{/* GENERATO AUTOMATICAMENTE: non modificare direttamente. Modifica invece il template in content/docs-templates/. */}
I componenti di branching consentono il rendering condizionale dei contenuti all'interno dei componenti [``](/docs/next/api/components/t). Gestiscono logiche dinamiche come le istruzioni if/else e le regole di pluralizzazione, assicurando al contempo che tutte le possibili varianti del contenuto possano essere tradotte correttamente.
## Componenti disponibili
* [``](/docs/next/api/components/branch): Contenuti condizionali in base a valori o stati
* [``](/docs/next/api/components/plural): Pluralizzazione automatica tramite regole specifiche dell'impostazione regionale
## Guida rapida
I componenti di branching funzionano all'interno di [``](/docs/next/api/components/t) per gestire la logica condizionale:
```jsx
import { T, Branch, Plural, Num, Var } from 'gt-next';
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 branching
I componenti di branching gestiscono il rendering condizionale all'interno delle traduzioni:
1. **Sostituendo gli operatori ternari** e la logica condizionale all'interno di [``](/docs/next/api/components/t)
2. **Fornendo contenuto 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 branching
User is active}
false={User is inactive
}
/>
```
## Guida ai componenti
### Branch - Contenuto condizionale
Usa [``](/docs/next/api/components/branch) per qualsiasi rendering condizionale in base a valori o stati:
```jsx
// Visualizzazione stato utente
Dashboard amministratore}
user={Dashboard utente
}
guest={Accesso ospite
}
>
Livello di accesso sconosciuto
// Condizioni booleane
Bentornato!}
false={Effettua il login
}
/>
// Livelli di abbonamento
Esegui l'upgrade per sbloccare le funzionalità premium}
premium={Goditi la tua esperienza premium
}
enterprise={Contatta il supporto per soluzioni enterprise
}
>
Stato abbonamento non disponibile
```
### Plurale - Gestione intelligente del plurale
Usa [``](/docs/next/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
Il branching e i componenti variabili funzionano perfettamente insieme:
```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 branching
### Sostituisci gli operatori ternari
Adatta la logica condizionale per usarla all'interno di [``](/docs/next/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 le catene di condizioni if/else:
```jsx
// ❌ Logica condizionale complessa
{status === 'loading' ? Loading...
:
status === 'error' ? Error occurred
:
status === 'success' ? Success!
:
Unknown status
}
// ✅ Logica di branching 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 branching possono essere usati al di fuori di [``](/docs/next/api/components/t) per gestire esclusivamente la logica, senza traduzione:
```jsx
// Rendering condizionale puro
}
light={}
>
// Pluralizzazione pura
}
other={}
/>
```
## Problemi comuni
### Chiavi branch mancanti
Fornisci sempre contenuto di fallback per i valori senza corrispondenza:
```jsx
// ❌ Nessun fallback per valori imprevisti
}
user={}
// E se userRole fosse "moderator"?
/>
// ✅ Includi sempre un fallback
}
user={}
>
{/* Fallback per qualsiasi altro valore */}
```
### Forme del plurale incomplete
Fornisci le forme del plurale 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
// ❌ Branch annidato complesso
{/* Difficile da leggere e mantenere */}
// ✅ Semplificare la logica o usare più componenti
}
active-offline={}
inactive-online={}
>
```
Per saperne di più sulle regole di pluralizzazione, consulta la [documentazione Unicode CLDR](https://cldr.unicode.org/index/cldr-spec/plural-rules).
## Passaggi successivi
* [Guida alla traduzione delle stringhe](/docs/next/guides/strings) - Traduci testo semplice senza JSX
* [Guida ai contenuti dinamici](/docs/key-concepts/dynamic-content) - Gestisci la traduzione runtime
* Riferimenti API:
* [Componente ``](/docs/next/api/components/branch)