# gt: General Translation CLI tool: 生成翻译
URL: https://generaltranslation.com/zh/docs/cli/guides/generating-translations.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: 使用 General Translation CLI 生成翻译，并将其保存到代码库或 CDN。

[`gt translate`](/docs/cli/reference/commands/translate) 命令是翻译项目的主要方式。它会读取 `gt.config.json` 以定位文件，扫描源代码中的内联内容，并通过 General Translation API 生成翻译。

*注意：请在面向生产环境构建之前，在 CI 流水线中运行 [`translate`](/docs/cli/reference/commands/translate)。它并不适用于开发环境；在开发环境中，你应改用开发 API 密钥进行按需翻译。*

## 开始之前 [#before]

* 使用 `gt.config.json` 配置项目。请参阅[配置 CLI](/docs/cli/guides/configuring)。
* 将生产环境的 `GT_API_KEY` 和 `GT_PROJECT_ID` 设为环境变量。
* 切换到你用于生产构建的分支。

## 翻译你的项目 [#translate]

在项目根目录下运行此命令。

```bash
npx gt translate
```

CLI 会翻译 `gt.config.json` 中匹配的所有文件。如果你使用 `gt-next`、`gt-react` 或 `gt-react-native`，它还会扫描源代码中的内联内容——例如 [`<T>`](/docs/react/reference/components/t) 组件和 [`useGT`](/docs/react/reference/hooks/use-gt) 调用——并将你的词典文件一并纳入处理。翻译结果会保存到你的代码库中，随时可以提交。

如果你使用 `next-intl`、`react-i18next` 或 `next-i18next`，CLI 会从 `package.json` 中检测所用的库，并在保留该库字符串语法的同时翻译你的文件。

## 将其添加到构建流程中 [#build]

在执行构建命令之前运行 [`translate`](/docs/cli/reference/commands/translate)，这样生产环境发布时始终会包含最新翻译。

```json title="package.json"
{
  "scripts": {
    "translate": "npx gt translate",
    "build": "npm run translate && <your build command>"
  }
}
```

## 控制要翻译的内容 [#content]

默认情况下，CLI 会在 `src`、`app`、`pages` 和 `components` 中搜索内联内容。你可以通过 `gt.config.json` 中的 `src` 字段或 `--src` 标志来覆盖此设置。

```bash
npx gt translate --src "lib/**/*.{ts,tsx}"
```

如果想在不修改配置的情况下，仅针对单次运行翻译到更多区域设置，请传入 `--locales`。这些区域设置会附加到 `gt.config.json` 中的 locales。

```bash
npx gt translate --locales de it
```

## 仅验证，不进行翻译 [#validate]

传入 `--dry-run`，即可在不调用 API 的情况下解析并验证项目。这有助于在实际运行前于 CI 中发现错误。

```bash
npx gt translate --dry-run
```

## 重新翻译现有内容 [#retranslate]

默认情况下，CLI 只会翻译源内容已更改的部分，并保留本地修改，还可以复用同一文件较早版本中的匹配翻译，而不只是最新版本。当源文本发生更改时，该片段会被再次翻译。若要更改此行为：

* `--force` 会重新翻译所有内容并覆盖现有翻译。本地修改将会丢失，且你需要为新的翻译付费。
* `--force-download` 会重新下载翻译，并在不重新翻译的情况下覆盖本地修改。

```bash
npx gt translate --force
```

## 为翻译运行添加标签 [#tagging]

使用 `--tag` 和 `-m` 为一次运行添加人类可读的标识符，便于在仪表板中跟踪各个版本。

```bash
npx gt translate --tag v2.1.0 -m "Added checkout page translations"
```

传入不带值的 `--tag`，即可使用当前 git 提交哈希作为标签，并将提交信息作为消息。打标签是非阻塞的——即使失败，翻译运行也会继续。

## 发布到 CDN [#publish]

默认情况下，翻译会保存在本地。添加 `--publish` 后，还会将其发布到 General Translation CDN，以便在运行时加载。

```bash
npx gt translate --publish
```

*注意：请先在项目“设置”中启用 CDN。否则，run 虽然会成功完成翻译，但 publish 步骤会失败并显示警告。*

## Next steps

- /docs/cli/guides/managing-translations
- /docs/cli/guides/branching
- /docs/cli/guides/configuring
- /docs/cli/guides/using-autoderive

## Sitemap

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