# gt: General Translation CLI tool: 使用自动派生翻译 URL: https://generaltranslation.com/zh/docs/cli/guides/using-autoderive.mdx --- title: 使用自动派生翻译 description: 如何在 General Translation CLI 中使用 Autoderive,为每个插值值自动生成单独的翻译条目。 related: links: - /docs/cli/guides/using-auto-jsx - /docs/cli/guides/generating-translations - /docs/cli/guides/managing-translations - /docs/cli/guides/configuring --- Autoderive 会将插值值按被 [`derive()`](/docs/react/reference/functions/derive) 包裹的方式进行解析,为每个可能的值生成单独的翻译条目。当句子中包含变量时,这样可以在不同语言中保留词形一致和动词变位。 Autoderive 默认禁用,适用于两种上下文:`t()`、`gt()` 和 `msg()` 调用中的插值值,以及 [``](/docs/react/reference/components/t) 组件内引用 `const` 声明的表达式。 ## 启用 Autoderive [#enable] 在 `gt.config.json` 的 `files.gt.parsingFlags` 下设置 `autoderive`。将其设为布尔值即可同时对字符串和 JSX 启用该功能。 ```json title="gt.config.json" { "files": { "gt": { "parsingFlags": { "autoderive": true } } } } ``` 如果只想为字符串或仅为 JSX 启用它,请传入一个对象。 ```json title="gt.config.json" { "files": { "gt": { "parsingFlags": { "autoderive": { "jsx": true, "strings": false } } } } } ``` ## 推导字符串值 [#strings] 启用 Autoderive 后,翻译调用中的插值值会针对每个可能的值生成一个条目。 ```jsx const gt = useGT(); const role = isAdmin ? 'admin' : 'user'; // 解析为派生值 — 生成: // "Welcome back, admin!" → "¡Bienvenido de nuevo, administrador!" // "Welcome back, user!" → "¡Bienvenido de nuevo, usuario!" gt(`Welcome back, ${role}!`); ``` 如果不使用 Autoderive,显式调用 [`derive()`](/docs/react/reference/functions/derive) 也能得到相同的结果。 ## 推导 JSX 中的值 [#jsx] 在 `` 组件中,Autoderive 会解析表达式里引用的 `const` 变量,并为每个取值生成一个条目。 ```jsx const label = condition ? 'boy' : 'girl'; // 生成两个条目: // "Hello, boy" → "Hola, chico" // "Hello, girl" → "Hola, chica" Hello, {label} ``` JSX 的 Autoderive 支持三元表达式和嵌套三元表达式、字符串/数字/布尔字面量、字符串拼接和模板字面量,以及链式 `const` 引用。 *注意:仅支持 `const` 声明。`let` 和 `var` 会产生警告,因为它们可以被重新赋值;同时也不支持解构变量,例如 `const { x } = obj`。`t` 标签模板宏不受影响——它会通过模板字面量语法处理派生。* ## Next steps - /docs/cli/guides/using-auto-jsx - /docs/cli/guides/generating-translations - /docs/cli/guides/managing-translations - /docs/cli/guides/configuring