# gt: General Translation CLI tool: Autoderive URL: https://generaltranslation.com/fr/docs/cli/features/autoderive.mdx --- title: Autoderive description: Dérivation automatique des valeurs interpolées dans les fonctions de traduction et les composants JSX --- ## Vue d’ensemble Lorsque l’autoderive est activé, les valeurs interpolées sont analysées comme si elles étaient encapsulées dans [`derive()`](/docs/next/api/strings/derive). Cela génère des entrées de traduction distinctes pour chaque valeur possible, en préservant l’accord grammatical et la conjugaison d’une langue à l’autre. L’autoderive fonctionne dans deux contextes : * **Chaînes de caractères** — valeurs interpolées dans les appels `t()`, `gt()` et `msg()` * **JSX** — expressions à l’intérieur des composants `` qui font référence à des déclarations de variables `const` L’autoderive est **désactivé par défaut**. ## Configuration Activez autoderive pour les chaînes de caractères et le JSX : ```json title="gt.config.json" { "files": { "gt": { "parsingFlags": { "autoderive": true } } } } ``` Vous pouvez aussi activer autoderive de façon sélective, uniquement pour les chaînes de caractères ou uniquement pour le JSX : ```json title="gt.config.json" { "files": { "gt": { "parsingFlags": { "autoderive": { "jsx": true, "strings": false } } } } } ``` ## Exemple de chaîne de caractères ```jsx const gt = useGT(); const role = isAdmin ? "admin" : "user"; // Avec autoderive activé, ceci est interprété comme dérivé : gt(`Welcome back, ${role}!`); // Génère : // "Welcome back, admin!" → "¡Bienvenido de nuevo, administrador!" // "Welcome back, user!" → "¡Bienvenido de nuevo, usuario!" ``` Sans autoderive, vous devez recourir explicitement à [`derive()`](/docs/next/api/strings/derive) pour obtenir le même comportement. ## Exemple JSX ```jsx const label = condition ? "boy" : "girl"; Hello, {label} // Génère deux entrées de traduction : // "Hello, boy" → "Hola, chico" // "Hello, girl" → "Hola, chica" ``` L’autoderive JSX résout les déclarations de variables `const` utilisées dans les composants ``. Il prend en charge : * Les expressions ternaires (`const x = cond ? "a" : "b"`) * Les expressions ternaires imbriquées (`const x = a ? "small" : b ? "medium" : "large"`) * Les littéraux de chaîne de caractères, numériques et booléens * La concaténation de chaînes de caractères et les littéraux de gabarit * Les références `const` chaînées (`const alias = base`) **`const` uniquement :** Seules les déclarations `const` sont prises en charge. Les variables `let` et `var` déclenchent un avertissement, car elles peuvent être réaffectées. Les variables déstructurées (`const { x } = obj`) ne sont pas prises en charge. **Remarque :** La macro `t` en tagged template n’est pas concernée — elle gère la dérivation via sa syntaxe de littéral de gabarit. ## Voir aussi * [Référence de la fonction `derive()`](/docs/next/api/strings/derive) * [Injection automatique de JSX](/docs/cli/features/auto-jsx-injection) * [Notes de version : gt@2.13.0](/devlog/gt_v2_13_0)