# gt: General Translation CLI tool: Translate
URL: https://generaltranslation.com/ja/docs/cli/translate.mdx
---
title: Translate
description: プロジェクトをtranslateする方法
---
## 使い方
```bash
npx gt translate
```
**重要:** 本番環境向けにアプリをビルドする**前に**、CI パイプラインでこれを実行してください。
## 概要
`gt translate` コマンドは、`gt.config.json` ファイルを読み込み、翻訳対象のファイルを判定して、プロジェクトを翻訳します。
[`gt-next`](/docs/next)、[`gt-react`](/docs/react)、または [`gt-react-native`](/docs/react-native) を使用している場合は、プロジェクトのソースコードからインラインコンテンツ (`` コンポーネントや `useGT` Hook など) も検出し、必要な翻訳ファイルを生成します。
さらに、辞書ファイルの内容も含まれます (指定されている場合) 。
このコマンドは、General Translation API および関連サービスを利用するための主要な手段です。
**本番環境でのみ使用してください:**
このコマンドは本番ビルド向けであり、**開発環境では使用しないでください**。
このコマンドを実行する前に、本番環境で使用する ブランチ にいることを確認してください。
本番環境用 API キー (`GT_API_KEY`) と プロジェクト ID (`GT_PROJECT_ID`) を環境変数として設定してください。
**注:** 本番環境用 API キーが必要です。[generaltranslation.com](https://generaltranslation.com/dashboard) で無料で取得するか、[セットアップウィザード](/docs/cli/init) を実行して生成してください。
### プロジェクトを translate する [#translate]
```bash
npx gt translate
```
`translate` コマンドは、`gt.config.json` を読み込んで翻訳対象のファイルを特定し、あわせてプロジェクトのソースコードから翻訳可能なコンテンツを検索したうえで、必要な翻訳ファイルを生成します。
翻訳結果は自動的にコードベースに保存されます。
詳しくは、[config docs](/docs/cli/reference/config#files)を参照してください。
{/* これらのリンクは意図的に自社の SDK ドキュメントを指しています。外部ライブラリのサイトではなく、CLI がこれらのライブラリをどのように扱うかを示すためです */}
**自動検出:** [`next-intl`](/docs/next)、[`react-i18next`](/docs/react)、または
[`next-i18next`](/docs/react-native) を使用している場合、CLI ツールは
`package.json` ファイルを読み取って使用中の i18n ライブラリを自動検出し、
その i18n ライブラリの構文に従って JSON を翻訳します。
### 翻訳を行わずに検証する [#validate]
```bash
npx gt translate --dry-run
```
[`gt-next`](/docs/next)、[`gt-react`](/docs/react)、または [`gt-react-native`](/docs/react-native) を使用している場合は、翻訳を生成せずに、これを使ってプロジェクトの `` コンポーネントと辞書ファイルを検証できます。
***
## フラグ
| パラメータ | 説明 | 型 | デフォルト |
| ------------------------------- | --------------------------------------------- | ---------- | --------------------------------------------------------------------------------------------------------------------------- |
| `--api-key` | 本番環境用 API キーを指定します | `string` | |
| `--project-id` | プロジェクト ID を指定します | `string` | |
| `--version-id` | バージョン ID を指定します (デフォルトではコンテンツのハッシュ) | `string` | |
| `--config ` | GT の config file へのパスを指定します | `string` | `"gt.config.json"` |
| `--tsconfig, --jsconfig ` | TS または JS の config file へのパスを指定します | `string` | |
| `--src ` | ソースファイルのスペース区切りのグロブパターン (ルートからの相対パス) | `[string]` | `['src/**/*.{js,jsx,ts,tsx}', 'app/**/*.{js,jsx,ts,tsx}', 'pages/**/*.{js,jsx,ts,tsx}', 'components/**/*.{js,jsx,ts,tsx}']` |
| `--dictionary ` | 辞書ファイルへのパスを指定します | `string` | |
| `--inline` | 辞書に加えてインラインの `` タグも含めます | `boolean` | `true` |
| `--timeout` | 翻訳リクエストのタイムアウト (秒) | `number` | `900` |
| `--new, --locales ` | 翻訳先のロケール (`gt.config.json` の locales に追加されます) | `[string]` | |
| `--default-locale ` | プロジェクトのソースロケール | `string` | `en` |
| `--ignore-errors` | エラーを無視し、有効なコンテンツは強制的に翻訳します | `flag` | `false` |
| `--dry-run` | 翻訳せずに検証します | `flag` | `false` |
| `--force` | すべてのコンテンツの再翻訳を強制します | `flag` | `false` |
| `--force-download` | すべての訳文を強制的にダウンロードします | `flag` | `false` |
| `--save-local` | 翻訳をキューに追加する前にローカルでの編集を検出して保存します | `flag` | `false` |
| `--enable-branching` | プロジェクトでブランチ機能を有効にします | `flag` | `false` |
| `--branch ` | 翻訳用のカスタムブランチ名を指定します | `string` | |
| `--disable-branch-detection` | ブランチの自動検出を無効にします | `flag` | `false` |
| `--tag [value]` | この翻訳実行にタグを付けます (値を指定しない場合は git から自動解決されます) | `string` | |
| `-m, --message ` | 翻訳タグに付加するメッセージ | `string` | |
| `--publish` | 翻訳後に訳文を CDN に公開します | `flag` | `false` |
| `--remote-name ` | ブランチ検出用のカスタムリモート名を指定します | `string` | `"origin"` |
**セキュリティ:** `gt.config.json` に API キーを追加しないでください。代わりに環境変数として設定してください。CLI は、設定されていれば `GT_API_KEY` を自動的に読み取ります。
### 主要なフラグ
| フラグ | 説明 |
| -------------------- | ----------------------------------------------------------------------------------- |
| `--dry-run` | GT API と通信せずに、プロジェクトを解析して検証します。コードベースを検証する際に便利です。 |
| `--force` | すべてのコンテンツを再翻訳し、既存の訳文を上書きします。ローカルでの変更はすべて失われます。新たに翻訳料金が発生します。 |
| `--force-download` | すべての訳文を再ダウンロードし、ローカルでの変更を上書きします。再翻訳は行いません。 |
| `--save-local` | キューに追加する前に、翻訳ファイル内のローカル編集を検出して保存します。[`save-local`](/docs/cli/save-local) を参照してください。 |
| `--enable-branching` | 異なる Git ブランチごとに訳文を個別に追跡します。[ブランチ機能](/docs/cli/branching) を参照してください。 |
| `--tag` | バージョン追跡のために、翻訳の実行に人が読める識別子のタグを付けます。[tagging](#tagging) を参照してください。 |
| `-m, --message` | 翻訳タグに説明用のメッセージを追加します。[tagging](#tagging) を参照してください。 |
| `--publish` | runtime で読み込めるように、訳文を CDN に公開します。[CDN への公開](#publishing-to-the-cdn) を参照してください。 |
### 設定ファイル
CLIを初めて実行すると、プロジェクトのルートに `gt.config.json` ファイルを作成しようとします。設定の詳細は[こちら](/docs/cli/reference/config)をご覧ください。
## 重要なポイント
### コンテンツの検索元
`translate` コマンドは、プロジェクト内の翻訳可能なコンテンツを再帰的に検索します。
デフォルトでは、次のディレクトリを検索します:
* `./src`
* `./app`
* `./pages`
* `./components`
検索対象の別のディレクトリを指定するには、`--src` フラグを使用するか、
[`gt.config.json`](/docs/cli/reference/config) ファイルの `src` プロパティを変更します。
### 訳文の上書き
デフォルトでは、ソースコンテンツが変更されていない限り、CLI はローカルで加えた訳文の変更を上書きしません。
すでに翻訳済みのコンテンツを再翻訳するには、`--force` を使用します。
**注意:** `--force` を使うと、**既存の訳文がすべて上書きされ、新しい訳文が生成されます**。ローカルで加えた変更はすべて失われます。新しい翻訳には料金が発生します。
再翻訳せずに訳文を再ダウンロードするには、`--force-download` を使用します。
**注意:** `--force-download` を使うと、ローカルで加えた訳文の変更が上書きされ、最新の訳文が取得されます。コンテンツの再翻訳は行われません。
### タグ付け [#tagging]
`--tag` フラグと `-m` フラグを使って翻訳実行に人が読み取れる識別子を付けると、ダッシュボードでバージョンの追跡や識別がしやすくなります。
#### カスタム識別子でタグ付け
```bash
npx gt translate --tag v2.1.0
```
#### カスタム識別子とメッセージを指定してタグ付け
```bash
npx gt translate --tag v2.1.0 -m "チェックアウトページの翻訳を追加"
```
#### git から自動的にタグ付けする
値を指定せずに `--tag` を渡すと、現在の git のコミットハッシュが自動的にタグの id として使われ、commit メッセージがタグメッセージとして使われます。
```bash
npx gt translate --tag
```
commitメッセージはカスタムメッセージで上書きできます:
```bash
npx gt translate --tag -m "Release 2.1 translations"
```
#### メッセージのみのタグ付け
`--tag` を指定せずに `-m` を渡すと、現在の git commit のハッシュ (git リポジトリ外ではランダムな識別子) をもとにタグが自動生成されます。
```bash
npx gt translate -m "Weekly translation update"
```
タグ付けはブロッキングではありません。タグの作成に失敗しても、翻訳処理は通常どおり続行されます。
### CDN への配信 [#publishing-to-the-cdn]
デフォルトでは、`gt translate` は翻訳ファイルをローカルのコードベースに保存します。`--publish` フラグを使うと、訳文を General Translation CDN にも公開できるため、ファイルをアプリにバンドルしなくても runtime で翻訳を読み込めるようになります。
```bash
npx gt translate --publish
```
これは、ローカルファイルではなく CDN から runtime に訳文を読み込む `gt-next` プロジェクトで役立ちます。
**CDN を有効にする必要があります:** `--publish` を使用する前に、[generaltranslation.com/dashboard](https://generaltranslation.com/dashboard) のプロジェクト設定で CDN を有効にしてください。CDN が有効になっていない場合、コマンド自体は正常に翻訳を完了しますが、警告が表示され、公開は失敗します。
`--publish` はローカルファイルへの出力と併用できます。訳文はローカルにも保存され、CDN にも公開されます。
```bash
npx gt translate --publish
```
### 辞書ファイル
`translate` コマンドは、プロジェクト内の辞書ファイルを自動的に検出します。
デフォルトでは、以下にある `dictionary.[json|ts|js]` という名前のファイルを探します。
* `./src`
* `./`
別の辞書ファイルを指定するには、`--dictionary` フラグを使用するか、[`gt.config.json`](/docs/cli/reference/config) の `dictionary` プロパティを変更します。