# gt: General Translation CLI tool: gt download
URL: https://generaltranslation.com/zh/docs/cli/reference/commands/download.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: 从 General Translation 下载已完成的译文。gt download 命令的 API 参考。

下载此前通过 [`gt enqueue`](/docs/cli/reference/commands/enqueue) 或 [`gt stage`](/docs/cli/reference/commands/stage) 提交翻译的已完成译文，并将其保存到配置中指定的输出路径。参见[管理翻译](/docs/cli/guides/managing-translations#split)。

*注意：仅用于生产环境。需要生产环境的 `GT_API_KEY` 和 `GT_PROJECT_ID`。*

```bash
npx gt download
```

## 工作方式 [#how-it-works]

1. 读取 `gt.config.json`，确定文件配置。
2. 启用 `stageTranslations` 时，读取已暂存的版本数据；否则会收集文件并计算哈希值，以确定要下载的内容。
3. 轮询 General Translation API，获取已完成的翻译。
4. 将翻译文件保存到配置中指定的输出路径。

仍在处理中的文件会被跳过。请重新运行 `gt download`，以便稍后获取它们。

## 标志 [#flags]

`download` 接受完整的 [`gt translate`](/docs/cli/reference/commands/translate#flags) 标志集，但不包括源代码扫描标志 (`--src`、`--dictionary`、`--tsconfig`/`--jsconfig`、`--inline`、`--ignore-errors`) ，因为这些标志仅适用于扫描源代码。下面列出的所有标志都受支持；其中会影响纯下载运行的，是 API、配置、超时、下载和分支相关标志。

| 参数                              | 描述                           | 类型         | 可选 | 默认值              |
| ------------------------------- | ---------------------------- | ---------- | -- | ---------------- |
| `--api-key <key>`               | 生产环境 API 密钥。                 | `string`   | 是  | `GT_API_KEY`     |
| `--project-id <id>`             | 项目 ID。                       | `string`   | 是  | `GT_PROJECT_ID`  |
| `--version-id <id>`             | 要下载的版本 ID。                   | `string`   | 是  | 内容哈希             |
| `-c, --config <path>`           | 配置文件路径。                      | `string`   | 是  | `gt.config.json` |
| `--default-locale <locale>`     | 项目的源区域设置。                    | `string`   | 是  | `en`             |
| `--locales <locales...>`        | 额外的目标区域设置，会追加到配置中的 locales。  | `string[]` | 是  | —                |
| `--timeout <seconds>`           | 等待超时时间 (秒) 。                 | `number`   | 是  | `900`            |
| `--dry-run`                     | 仅解析并验证，不调用 API。              | `boolean`  | 是  | `false`          |
| `--force`                       | 使缓存的翻译失效并重新翻译。               | `boolean`  | 是  | `false`          |
| `--force-download`              | 覆盖本地文件，绕过 `gt-lock.json` 检查。 | `boolean`  | 是  | `false`          |
| `--save-local, --no-save-local` | 共享标志解析器接受此选项，但纯下载运行期间不会保存修改。 | `boolean`  | 是  | `false`          |
| `--publish`                     | 将翻译发布到 CDN。                  | `boolean`  | 是  | `false`          |
| `--enable-branching`            | 启用基于分支的跟踪。                   | `boolean`  | 是  | —                |
| `--branch <branch>`             | 使用指定分支名称，而不是自动检测。            | `string`   | 是  | —                |
| `--disable-branch-detection`    | 仅使用指定分支，不进行关系检测。             | `boolean`  | 是  | `false`          |
| `--remote-name <name>`          | 用于分支检测的 Git 远程名称。            | `string`   | 是  | `origin`         |
| `--tag [value]`                 | 为本次运行添加标签；未提供值时会自动从 git 解析。  | `string`   | 是  | —                |
| `-m, --message <message>`       | 附加到翻译标签的消息。                  | `string`   | 是  | —                |

`download` 还接受 [`gt translate`](/docs/cli/reference/commands/translate#experimental) 下列出的实验性标志 (例如 `--experimental-clear-locale-dirs`，会在写入新翻译前清空区域设置目录) 。

## 示例 [#example]

```bash
# 第一阶段：上传源文件
npx gt upload

# 第二阶段：将翻译加入队列
npx gt enqueue

# 第三阶段：下载已完成的翻译（此命令）
npx gt download
```

## 其他说明 [#notes]

* 启用 `stageTranslations` 时，`download` 会读取已暂存的版本数据；否则，它会收集文件并计算哈希值，以确定要下载的内容。
* `download` 会轮询 API，直到翻译准备就绪或达到 `--timeout`，因此它可以在比 [`gt enqueue`](/docs/cli/reference/commands/enqueue) 更靠后的 CI job 中运行。
* 已暂存的文件会一直保留在 `gt-lock.json` 中，直到所有已配置的区域设置均已下载。
* 仅当下载内容包含内联 GTJSON 模板且 `omitConfigIds` 为 `false` 时，才需要 `_versionId`。仅包含文件的项目 (包括仅包含 Lottie 的项目) 不需要它。

## Sitemap

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