# gt: General Translation CLI tool: 自動導出された翻訳を使用する
URL: https://generaltranslation.com/ja/docs/cli/guides/using-autoderive.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: General Translation CLI の Autoderive を使って、各補間値ごとに個別の翻訳エントリを自動生成する方法。

Autoderive は補間値を [`derive()`](/docs/react/reference/functions/derive) でラップされているものとして解析し、取り得る各値ごとに個別の翻訳エントリを生成します。これにより、文に変数が含まれる場合でも、言語ごとの語形一致や活用を適切に保てます。

Autoderive はデフォルトで無効になっており、2 つの場面で適用されます。1 つは [`t()`](/docs/react/reference/functions/t-function)、`gt()`、[`msg()`](/docs/react/reference/functions/msg) 呼び出し内の補間値、もう 1 つは `const` 宣言を参照する [`<T>`](/docs/react/reference/components/t) コンポーネント内の式です。

## autoderive を有効にする [#enable]

`gt.config.json` の `files.gt.parsingFlags` で `autoderive` を設定します。ブール値を指定すると、strings と 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 }
      }
    }
  }
}
```

## 文字列値を derive [#strings]

Autoderive を有効にすると、翻訳呼び出し内の補間値ごとに、取り得る各値に対応する 1 つのエントリが生成されます。

```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';

// 2つのエントリを生成します:
//   "Hello, boy"  → "Hola, chico"
//   "Hello, girl" → "Hola, chica"
<T>Hello, {label}</T>
```

JSX 向けの autoderive は、三項演算子およびネストした三項演算子式、文字列・数値・真偽値リテラル、文字列結合とテンプレートリテラル、さらに連鎖した `const` 参照をサポートしています。

*注: サポートされるのは `const` 宣言のみです。`let` と `var` は再代入される可能性があるため警告が表示され、`const { x } = obj` のような分割代入の変数はサポートされません。[`t`](/docs/react/reference/functions/t-function) の tagged template macro は影響を受けず、テンプレートリテラル構文を通じて導出を処理します。*

## 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.
