# 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)