# gt: General Translation CLI tool: gt upload
URL: https://generaltranslation.com/ja/docs/cli/reference/commands/upload.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: ソースファイルと翻訳を General Translation プラットフォームにアップロードします。`gt upload` コマンドの API リファレンス。

プロジェクトのソースファイルと既存の翻訳を General Translation プラットフォームにアップロードし、ローカルファイルを同期して、管理・キューへの追加・追跡を行えるようにします。[`gt enqueue`](/docs/cli/reference/commands/enqueue) および [`gt download`](/docs/cli/reference/commands/download) と組み合わせることで、翻訳処理を CI の各ステージに分割できます。詳しくは [翻訳を管理する](/docs/cli/guides/managing-translations#split) を参照してください。

*注: 本番環境でのみ使用できます。本番用の `GT_API_KEY` と `GT_PROJECT_ID` が必要です。*

```bash
npx gt upload
```

## 仕組み [#how-it-works]

1. `gt.config.json` を読み取り、どのファイルをアップロードするかを判定します。
2. 翻訳可能なすべてのソースファイルを収集します。
3. 各ファイルをハッシュ化して、`fileId` (パスから) と `versionId` (内容から) を生成します。
4. API に問い合わせて、どのファイルが新規または変更されたものかを判定します。
5. ファイルの移動 (内容は同じでパスが異なるもの) を検出し、既存の翻訳を保持します。
6. 新規または変更されたソースファイルを、ローカル翻訳ファイルとともにアップロードします。
7. 設定された CDN の公開ルールと公開解除ルールを適用します。`--publish` は公開をグローバルなデフォルトとして設定しますが、ファイルごとに明示的に指定された `publish: false` のルールがあれば、そのファイルは対象外のままになります。

## フラグ [#flags]

`upload` は共通の [translation フラグ](/docs/cli/reference/commands/translate#flags) を登録しますが、実際に使用するのはファイルの収集、アップロード、公開に関係するオプションのみです。主なオプションは以下のとおりです。

| パラメータ                       | 説明                                                | 型          | 任意  | デフォルト            |
| --------------------------- | ------------------------------------------------- | ---------- | --- | ---------------- |
| `--api-key <key>`           | 本番用の API キー。                                      | `string`   | Yes | `GT_API_KEY`     |
| `--project-id <id>`         | プロジェクト ID。                                        | `string`   | Yes | `GT_PROJECT_ID`  |
| `-c, --config <path>`       | 設定ファイルのパス。                                        | `string`   | Yes | `gt.config.json` |
| `--locales <locales...>`    | 追加の対象ロケール。設定の locales に追記されます。                    | `string[]` | Yes | —                |
| `--default-locale <locale>` | プロジェクトのソースロケール。                                   | `string`   | Yes | `en`             |
| `--publish`                 | 公開を全体のデフォルトとして使用します。ファイル単位で明示的に除外した設定はそのまま適用されます。 | `boolean`  | Yes | `false`          |

<Callout type="warn">
  `gt` 2.20.1 では、`upload` は `--dry-run` を受け付けますが、それでもファイルはアップロードされます。共通の `--timeout` フラグは翻訳の待機時間を制御するものであり、このコマンドには影響しません。収集されたファイルをアップロードせずに確認するには、[`gt stage --dry-run`](/docs/cli/reference/commands/stage) を使用してください。
</Callout>

## 例 [#example]

```bash
# ステージ1: ソースファイルをアップロードする（このコマンド）
npx gt upload

# ステージ2: 翻訳をキューに追加する
npx gt enqueue

# ステージ3: 準備ができたらダウンロードする
npx gt download
```

## その他のメモ [#notes]

* `upload` は、設定されているあらゆる種類の翻訳可能なソースファイル (JSON、YAML、Markdown、MDX など) と、ローカル翻訳ファイルを収集します。
* 内容が `gt-lock.json` と一致したままの既存の翻訳はスキップされます。それ以外のローカル翻訳はアップロードされ、保存済みの翻訳を置き換える場合があります。ロックファイルがない場合は、すべてのローカル翻訳がアップロードされます。
* 各ファイルはパスと内容に基づいてハッシュ化されるため、ファイルを移動しても (内容が同じでパスだけが変わった場合) 、再翻訳されず既存の翻訳がそのまま引き継がれます。
* 公開する前に、プロジェクトの設定で CDN を有効にしてください。公開に失敗しても、アップロードは成功したままとなり、CLI が警告を出力します。

## Sitemap

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