# gt: General Translation CLI tool: autoderive URL: https://generaltranslation.com/es/docs/cli/features/autoderive.mdx --- title: autoderive description: Deriva automáticamente los valores interpolados en las funciones de traducción y los componentes JSX --- ## Descripción general Cuando autoderive está activado, los valores interpolados se analizan como si estuvieran envueltos en [`derive()`](/docs/next/api/strings/derive). Esto genera entradas de traducción independientes para cada valor posible, lo que preserva la concordancia y la conjugación entre idiomas. Autoderive funciona en dos contextos: * **Cadenas** — valores interpolados en llamadas a `t()`, `gt()` y `msg()` * **JSX** — expresiones dentro de componentes `` que hacen referencia a declaraciones de variables `const` Autoderive está **desactivado de forma predeterminada**. ## Configuración Habilita autoderive tanto para cadenas como para JSX: ```json title="gt.config.json" { "files": { "gt": { "parsingFlags": { "autoderive": true } } } } ``` También puedes habilitar autoderive de forma selectiva solo para cadenas o solo para JSX: ```json title="gt.config.json" { "files": { "gt": { "parsingFlags": { "autoderive": { "jsx": true, "strings": false } } } } } ``` ## Ejemplo de cadena ```jsx const gt = useGT(); const role = isAdmin ? "admin" : "user"; // Con autoderive habilitado, esto se interpreta como derivado: gt(`Welcome back, ${role}!`); // Genera: // "Welcome back, admin!" → "¡Bienvenido de nuevo, administrador!" // "Welcome back, user!" → "¡Bienvenido de nuevo, usuario!" ``` Sin autoderive, debes usar explícitamente [`derive()`](/docs/next/api/strings/derive) para obtener el mismo comportamiento. ## Ejemplo de JSX ```jsx const label = condition ? "boy" : "girl"; Hello, {label} // Genera dos entradas de traducción: // "Hello, boy" → "Hola, chico" // "Hello, girl" → "Hola, chica" ``` autoderive de JSX resuelve las declaraciones de variables `const` a las que se hace referencia dentro de los componentes ``. Admite: * Expresiones ternarias (`const x = cond ? "a" : "b"`) * Ternarias anidadas (`const x = a ? "small" : b ? "medium" : "large"`) * Literales de cadena, número y booleanos * Concatenación de cadenas y literales de plantilla * Referencias encadenadas a `const` (`const alias = base`) **Solo `const`:** Solo se admiten declaraciones `const`. Las variables `let` y `var` generan una advertencia porque se pueden reasignar. No se admiten las variables desestructuradas (`const { x } = obj`). **Nota:** La macro `t` de tagged template no se ve afectada: gestiona la derivación mediante su sintaxis de literal de plantilla. ## Relacionados * [Referencia de la función `derive()`](/docs/next/api/strings/derive) * [Inyección automática de JSX](/docs/cli/features/auto-jsx-injection) * [Notas de lanzamiento: gt@2.13.0](/devlog/gt_v2_13_0)