# 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) を参照してください。

*注: プロジェクト ID と、[保存済みのログインまたは明示的に指定したツーリングキー](/docs/cli/guides/configuring#credentials)が必要です。また、実行する操作に対する権限が付与されている必要があります。*

```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>`           | ツーリングキー を明示的に指定して上書きします。                         | `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.
