翻译
如何为你的项目进行翻译
用法
在进行生产构建之前,请在 CI 流水线中运行此命令。
npx gtx-cli translate注意: 此命令需要生产环境的 API key!请前往平台获取。
概览
gtx-cli translate 命令用于翻译您的项目。
它会遍历项目的文件树,翻译所有由 <T> 组件包裹的内容,
以及使用 useGT 函数的内容。
此外,它还会包含字典文件中的内容(如果有提供)。
此命令是使用 General Translation API 及相关服务的主要方式。
仅用于生产环境!
此命令用于生产构建,不应在开发环境中使用。
在运行该命令之前,请确保您位于将用于生产的分支上。
请记得在环境变量中指定生产环境的 API key(GT_API_KEY)和项目 ID(GT_PROJECT_ID)。
用法
translate 命令有 3 种用法。方法 1 和方法 2 需要生产环境的 API key:
我们建议先运行设置向导:npx gtx-cli configure,以在执行 translate 命令前完成项目配置。
根据你的项目配置方式不同,translate 命令的行为也会有所变化。
方法 1:翻译项目的 JSON 文件。
如果你使用的是其他 i18n 库,例如 next-intl、react-i18next 或 next-i18next,可以采用此方法来翻译项目的 JSON 文件。
翻译结果会自动保存到你的代码库中。
要使用 CLI 工具翻译项目的 JSON 文件,请修改 gt.config.json,在 files 属性中加入 json。
更多详情请参见 CLI 配置文档。
npx gtx-cli translate该 CLI 工具会通过读取你的 package.json 文件自动检测所使用的 i18n 库,并在遵循该 i18n 库语法的前提下翻译你的 JSON 文件。
方法二:为你的 GT 项目生成翻译
如果你的项目使用了 gt-next 或 gt-react,可以使用此方法为项目生成翻译。
npx gtx-cli translate默认情况下,翻译会保存到 GT CDN。
如果你希望将翻译存到代码库中,请在 gt.config.json 文件的 files 对象里添加 gt 属性。
gt-next 和 gt-react 既支持本地提供翻译,也支持使用 General Translation 的公共 CDN。
我们建议使用 CDN,以降低时延、提升性能,并减小包体积。
更多详情请参见 CLI 配置文档。
方法三:验证项目的 <T> 组件和字典文件。
此方法用于验证项目的 <T> 组件和字典文件。
这样可以确保项目配置正确,且翻译结果有效且准确。
如果提供了 --dry-run 标志,则不会生成任何翻译。
npx gtx-cli translate --dry-run标志
| 参数 | 描述 | 类型 | 可选 | 默认值 | 
|---|---|---|---|---|
| --api-key | 指定生产环境的 API key | string | true | |
| --project-id | 指定项目 ID | string | true | |
| --version-id | 指定版本 ID(默认是内容的哈希值) | string | true | |
| --config <path> | 指定 GT 配置文件路径 | string | true | "gt.config.json" | 
| --tsconfig, --jsconfig <path> | 指定 TS 或 JS 配置文件路径 | string | true | |
| --src <paths> | 以空格分隔的 glob 模式列表,用于匹配源文件;路径应相对于项目根目录。 | [string] | true | [  'src/**/*.{js,jsx,ts,tsx}', 'app/**/*.{js,jsx,ts,tsx}', 'pages/**/*.{js,jsx,ts,tsx}', 'components/**/*.{js,jsx,ts,tsx}', ] | 
| --dictionary <path> | 指定字典文件路径 | string | true | |
| --inline | 除字典外,还包括内联的 <T>标签 | boolean | true | true | 
| --timeout | 翻译请求的超时时间(秒) | number | true | 600 | 
| --new, --locales <locales> | 要将项目翻译成的目标 locales | [string] | true | |
| --default-locale <locale> | 项目的源 locale | string | true | en | 
| --ignore-errors | 忽略错误并对有效内容强制翻译 | flag | true | false | 
| --dry-run | 试运行该命令 | flag | true | false | 
| --force | 强制重新翻译项目 | flag | true | false | 
| --force-download | 强制下载项目的所有翻译 | flag | true | false | 
以上所有参数均为可选。
不要将你的 API key 添加到 gt.config.json 文件中!
应将其设置为环境变量。CLI 在检测到设置时会自动读取 GT_API_KEY。
以下是几个关键参数:
| 参数 | 描述 | 
|---|---|
| --dry-run | 使 CLI 解析并验证你的项目,但不与 GT API 通信。用于验证代码库非常有用。 | 
| --api-key | 除非使用 --dry-run,否则必须提供生产环境的 API key。 | 
| --project-id | 同样地,除非使用 --dry-run,否则必须提供项目 ID。 | 
| --new, --locales <locales> | 要将项目翻译成的目标 locales。这些会追加到 gt.config.json文件中指定的 locales。 | 
| --force | 强制重新翻译项目,并覆盖所有现有翻译。 | 
| --force-download | 强制下载所有翻译,并覆盖你在本地对翻译所做的任何更改。 | 
配置文件
首次运行 CLI 工具时,它会尝试在项目根目录下创建一个 gt.config.json 文件。
该文件包含项目的元数据,供内容翻译使用。
在此处了解更多关于 gt.config.json 的信息。
重要说明
内容来源
translate 命令会在项目中递归查找可翻译内容。
默认情况下,它会在以下目录中搜索:
- ./src
- ./app
- ./pages
- ./components
你可以使用 --src 参数指定要搜索的其他目录,
或通过修改 gt.config.json 文件中的 src 属性进行配置。
覆写翻译
默认情况下,CLI 工具不会覆写你在本地对翻译所做的任何更改,除非源内容发生了变化。
如果你想重新翻译已翻译的项目内容,可以使用 --force 标志。
使用 --force 将覆写所有现有翻译,且不会保留你在本地对翻译所做的任何更改。
如果你已经获取了项目的最新翻译并想再次下载它们,可以使用 --force-download 标志。
使用 --force-download 将覆写你在本地对翻译所做的任何更改,并获取最新翻译。它不会重新翻译任何内容。
字典文件
translate 命令会自动检测项目中的字典文件。
默认情况下,它会在以下目录查找名为 dictionary.[json|ts|js] 的文件:
- ./src
- ./
您可以通过 --dictionary 标志,或在 gt.config.json 文件中修改 dictionary 属性来指定其他字典文件。
这份指南怎么样?

