# gt-react: General Translation React SDK: Derive URL: https://generaltranslation.com/it/docs/react/api/components/derive.mdx --- title: Derive description: Riferimento API del componente Derive --- {/* GENERATO AUTOMATICAMENTE: Non modificare direttamente. Modifica il modello in content/docs-templates/. */} ## Panoramica Il componente `` viene utilizzato per gestire la frammentazione delle frasi e i contenuti riutilizzabili senza compromettere la concordanza, la coniugazione e le variazioni dell'ordine delle parole. Nell'esempio seguente vengono create due traduzioni separate: "Il bel ragazzo gioca con la palla" e "La bella ragazza gioca con la palla". ```jsx function getSubject(gender) { return gender === 'male' ? 'boy' : 'girl'; } The beautiful {getSubject(gender)} plays with the ball. ; ``` Il componente `` indica allo strumento CLI di dereferenziare una chiamata di funzione e catalogare tutti i possibili contenuti restituiti da tale funzione, trattando ogni istruzione `return` come se fosse racchiusa in un componente ``. **Utilizzo avanzato:** Il componente `` è una funzionalità avanzata e va usato con cautela, perché può generare un numero di voci di traduzione ingannevolmente elevato. Inoltre, `` richiede rigorosamente che tutte le possibili permutazioni del contenuto siano analizzabili staticamente. Per ulteriori informazioni, consulta le note di rilascio di [gt-next@6.8.0](/devlog/gt-next_v6_8_0). *** ## Riferimento ### Props ### Descrizione | Prop | Descrizione | | ---------- | ----------------------------------------------------------------------------------- | | `children` | Contenuto statico. Lo strumento CLI analizzerà tutti i possibili valori di ritorno. | ### Restituisce `React.JSX.Element` contenente il contenuto sottoposto a rendering dalla chiamata di funzione, con una voce di traduzione separata per ciascun risultato possibile. *** ## Comportamento ### Analisi in fase di build Durante il processo di build, lo strumento CLI analizza gli elementi figli dei componenti `` e crea voci di traduzione separate per ciascun risultato possibile. Questo consente di gestire correttamente la concordanza grammaticale e l'ordine delle parole nelle diverse lingue. ### Requisiti Gli elementi figlio dei componenti `` devono poter essere determinati in fase di build. La sintassi supportata include: * Valori letterali stringa, numerici e booleani * Espressioni JSX con componenti `` e `` annidati * Operatori ternari * Chiamate di funzione (con risultati analizzabili staticamente) *** ## Esempi ### Utilizzo di base Usa `` per gestire i contenuti dinamici che influiscono sulla struttura della frase. ```jsx title="BasicExample.jsx" copy import { T, Derive } from 'gt-react'; export default function Example({ gender }) { return ( The {gender === 'male' ? 'boy' : 'girl'} is beautiful. ); } ``` Questo crea due voci di traduzione: * "Il ragazzo è bello" * "La ragazza è bella" ### Con chiamate di funzione Usa `` per gestire il contenuto dinamico che influisce sulla struttura della frase in una chiamata di funzione. ```jsx title="BasicExample.jsx" copy import { T, Derive } from 'gt-react'; function getSubject(gender) { return gender === 'male' ? 'boy' : 'girl'; } export default function Example({ gender }) { return ( The {getSubject(gender)} is beautiful. ); } ``` ### Con variabili Combina `` con `` per gestire contenuti dinamici all'interno di valori di ritorno statici delle funzioni. ```jsx title="WithVariables.jsx" copy import { T, Derive, Var } from 'gt-react'; function getTitle(title) { return title === 'Mr.' ? 'Mr.' : 'Ms.'; } function getGreeting(title) { return ( <> Hello, {getTitle(title)}. How are you, {name}? ); } export default function Greeting({ title, name }) { return ( {getGreeting(title)} ); } ``` ### Componenti `` multipli Fai attenzione quando usi più componenti ``, perché moltiplicano le voci di traduzione. ```jsx title="MultipleDerive.jsx" copy import { T, Derive } from 'gt-react'; function getSubject(gender) { return gender === 'male' ? 'boy' : 'girl'; } function getObject(toy) { return toy === 'ball' ? 'ball' : 'crayon'; } export default function PlayExample({ gender, toy }) { return ( {getSubject(gender)} plays with the{' '} {getObject(toy)}. ); } ``` Questo crea quattro voci di traduzione (2 × 2 combinazioni): * "il ragazzo gioca con la palla" * "il ragazzo gioca con il pastello" * "la ragazza gioca con la palla" * "la ragazza gioca con il pastello" ### Sintassi delle funzioni supportata ```jsx title="SupportedSyntax.jsx" copy function getExamples(key) { switch (key) { case 'literals': if (condition1) { return 'The boy'; } else if (condition2) { return 22; } else { return true; } case 'jsx': return ( <> Hello, {getTitle(title)}. How are you,{' '} {name}? ); case 'ternary': return condition ? 'The boy' : 'The girl'; case 'function_calls': return otherStaticFunction(); } } ``` *** ## Limitazioni ### Impatto sulle prestazioni L'uso di `` può causare una crescita esponenziale delle voci di traduzione. Ogni componente `` aggiuntivo moltiplica il numero totale delle traduzioni. ### Contenuto variabile Qualsiasi contenuto dinamico o variabile presente nei valori restituiti da funzioni statiche deve essere racchiuso in componenti ``. ```jsx // Corretto function getContent() { return ( <> Hello, {userName}! ); } // Errato - causerà errori di build function getContent() { return <>Hello, {userName}!; } ``` *** ## Note * Il componente `` è progettato per gestire la frammentazione delle frasi mantenendo la correttezza grammaticale tra lingue diverse. * Considera sempre l'impatto sulle prestazioni dell'uso di più componenti `` in una singola traduzione. * Tratta ogni istruzione `return` nelle funzioni statiche come se fosse racchiusa in un componente ``. * Usa `` con criterio: quando possibile, preferisci strutture di traduzione più semplici. ## Passaggi successivi * Per i contenuti variabili all'interno delle traduzioni, vedi il componente [``](/docs/react/api/components/var). * Per il componente di traduzione principale, vedi [``](/docs/react/api/components/t). * Per l'equivalente in forma di stringa di ``, vedi [`derive`](/docs/react/api/strings/derive).