# gt: General Translation CLI tool: Autoderive URL: https://generaltranslation.com/it/docs/cli/features/autoderive.mdx --- title: Autoderive description: Deriva automaticamente i valori interpolati nelle funzioni di traduzione e nei componenti JSX --- ## Panoramica Quando autoderive è abilitato, i valori interpolati vengono analizzati come se fossero racchiusi in [`derive()`](/docs/next/api/strings/derive). In questo modo vengono generate voci di traduzione distinte per ogni possibile valore, mantenendo concordanza e coniugazione nelle diverse lingue. Autoderive funziona in due contesti: * **Stringhe** — valori interpolati nelle chiamate `t()`, `gt()` e `msg()` * **JSX** — espressioni all'interno dei componenti `` che fanno riferimento a dichiarazioni di variabili `const` Autoderive è **disattivato per impostazione predefinita**. ## Configurazione Abilita autoderive per stringhe e JSX: ```json title="gt.config.json" { "files": { "gt": { "parsingFlags": { "autoderive": true } } } } ``` Puoi anche abilitare autoderive in modo selettivo solo per le stringhe o solo per JSX: ```json title="gt.config.json" { "files": { "gt": { "parsingFlags": { "autoderive": { "jsx": true, "strings": false } } } } } ``` ## Esempio di stringa ```jsx const gt = useGT(); const role = isAdmin ? "admin" : "user"; // Con autoderive abilitato, questo viene analizzato come derivato: gt(`Welcome back, ${role}!`); // Genera: // "Welcome back, admin!" → "¡Bienvenido de nuevo, administrador!" // "Welcome back, user!" → "¡Bienvenido de nuevo, usuario!" ``` Senza autoderive, devi usare esplicitamente [`derive()`](/docs/next/api/strings/derive) per ottenere lo stesso comportamento. ## Esempio JSX ```jsx const label = condition ? "boy" : "girl"; Hello, {label} // Genera due voci di traduzione: // "Hello, boy" → "Hola, chico" // "Hello, girl" → "Hola, chica" ``` L'autoderive JSX risolve le dichiarazioni di variabili `const` a cui si fa riferimento all'interno dei componenti ``. Supporta: * Espressioni ternarie (`const x = cond ? "a" : "b"`) * Ternarie annidate (`const x = a ? "small" : b ? "medium" : "large"`) * Letterali stringa, numerici e booleani * Concatenazione di stringhe e template literal * Riferimenti `const` in catena (`const alias = base`) **Solo `const`:** Sono supportate solo le dichiarazioni `const`. Le variabili `let` e `var` generano un avviso perché possono essere riassegnate. Le variabili destrutturate (`const { x } = obj`) non sono supportate. **Nota:** La macro tagged template `t` non è coinvolta: gestisce la derivazione tramite la sintassi del template literal. ## Vedi anche * [Riferimento della funzione `derive()`](/docs/next/api/strings/derive) * [Iniezione automatica di JSX](/docs/cli/features/auto-jsx-injection) * [Note di rilascio: gt@2.13.0](/devlog/gt_v2_13_0)