# gt: General Translation CLI tool: Использование автоматически выводимых переводов
URL: https://generaltranslation.com/ru/docs/cli/guides/using-autoderive.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: Как автоматически создавать отдельную запись перевода для каждого интерполированного значения с помощью Autoderive в CLI General Translation.

Autoderive обрабатывает интерполированные значения так, как если бы они были обёрнуты в [`derive()`](/docs/react/reference/functions/derive), создавая отдельную запись перевода для каждого возможного значения. Это сохраняет согласование слов и спряжение в разных языках, когда предложение содержит переменную.

По умолчанию Autoderive отключён и применяется в двух контекстах: к интерполированным значениям в вызовах [`t()`](/docs/react/reference/functions/t-function), `gt()` и [`msg()`](/docs/react/reference/functions/msg), а также к выражениям внутри компонентов [`<T>`](/docs/react/reference/components/t), которые ссылаются на объявления `const`.

## Включите Autoderive [#enable]

Задайте `autoderive` в `files.gt.parsingFlags` файла `gt.config.json`. Логическое значение включает эту функцию и для строк, и для 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]

Внутри компонента [`<T>`](/docs/react/reference/components/t) Autoderive определяет значения `const`-переменных, на которые ссылается выражение, и создает отдельную запись для каждого значения.

```jsx
const label = condition ? 'boy' : 'girl';

// Генерирует две записи:
//   "Hello, boy"  → "Hola, chico"
//   "Hello, girl" → "Hola, chica"
<T>Hello, {label}</T>
```

Autoderive для JSX поддерживает тернарные и вложенные тернарные выражения, строковые, числовые и булевы литералы, конкатенацию строк и шаблонные литералы, а также цепочки ссылок через `const`.

*Примечание: поддерживаются только объявления `const`. `let` и `var` вызывают предупреждение, поскольку им можно повторно присваивать значения, а деструктурированные переменные, такие как `const { x } = obj`, не поддерживаются. Макрос тегированного шаблона [`t`](/docs/react/reference/functions/t-function) это не затрагивает — он обрабатывает деривацию с помощью синтаксиса шаблонных литералов.*

## Next steps

- /docs/cli/guides/using-auto-jsx
- /docs/cli/guides/generating-translations
- /docs/cli/guides/managing-translations
- /docs/cli/guides/configuring

## Sitemap

See the full [sitemap](https://generaltranslation.com/sitemap.md) for all pages.
