翻译
如何为你的项目提供翻译
使用方法
在将应用构建为生产环境之前,请先在 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 密钥:
我们建议先运行设置向导:npx gtx-cli configure,在运行 translate 命令之前先完成项目配置。
根据你的项目配置方式,translate 命令的行为可能会有所不同。
方法一:翻译项目的 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 库,并在遵循该库语法的前提下翻译你的 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> | 将项目翻译到的语言/地区 | [string] | true | |
--default-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> | 将项目翻译到的语言/地区。这些会追加到 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 属性。
本指南如何?