# gt: General Translation CLI tool: 上传
URL: https://generaltranslation.com/zh/docs/cli/upload.mdx
---
title: 上传
description: 如何将源文件和翻译上传到 General Translation 平台
---
## 用法
```bash
npx gt upload
```
**注意:**此命令需要生产环境 API 密钥!请前往
[平台](https://generaltranslation.com/dashboard)
获取。
## 概述
`gt upload` 命令会将项目的源文件以及任何已有翻译上传到 General Translation 平台。这会将本地文件与平台同步,以便在平台中进行管理、加入翻译队列并追踪状态。
拆分式 CI/CD 流程的典型工作流如下:
1. **`gt upload`** — 将源文件上传到 General Translation 平台
2. [`gt enqueue`](/docs/cli/enqueue) — 将已上传的文件加入翻译队列
3. [`gt download`](/docs/cli/download) — 下载已完成的翻译
**仅限生产环境使用!**
此命令用于生产构建,**不应在开发环境中使用**。
请务必在环境变量中指定生产 API 密钥 (`GT_API_KEY`) 和项目 ID (`GT_PROJECT_ID`) 。
## 工作方式
1. 读取你的 `gt.config.json`,确定要上传哪些文件
2. 收集所有可翻译的源文件 (JSON、YAML、Markdown、MDX 等)
3. 对每个文件进行哈希计算,生成 `fileId` (基于路径) 和 `versionId` (基于内容)
4. 查询 General Translation API,确定哪些文件是新增或已更改的
5. 检测文件移动 (内容相同但路径不同) ,并保留现有翻译
6. 将新增和已更改的源文件上传到平台
7. 如果在本地发现现有翻译文件,也会一并上传
## 标志
`upload` 命令接受与 [`translate`](/docs/cli/translate#flags) 相同的标志。
| Parameter | Description | Type | Optional | Default |
| ---------------------------- | ----------------------- | ---------- | -------- | ------------------ |
| `--api-key` | 指定生产环境 API 密钥 | `string` | `true` | |
| `--project-id` | 指定项目 ID | `string` | `true` | |
| `--version-id` | 指定版本 ID (默认情况下为内容的哈希值) | `string` | `true` | |
| `--config ` | 指定 GT 配置文件路径 | `string` | `true` | `"gt.config.json"` |
| `--new, --locales ` | 指定要将项目翻译到哪些区域设置 | `[string]` | `true` | |
| `--default-locale ` | 项目的源区域设置 | `string` | `true` | `en` |
| `--dry-run` | 以试运行方式执行命令 | `flag` | `true` | `false` |
| `--timeout` | 请求超时时间 (秒) | `number` | `true` | `600` |
## 示例:拆分 CI 流水线
```bash
# 阶段 1:上传源文件
npx gt upload
# 阶段 2:将翻译加入队列
npx gt enqueue
# 阶段 3:准备就绪后下载
npx gt download
```