翻译

如何为你的项目提供翻译

使用方法

在将应用构建为生产环境之前,请先在 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-intlreact-i18nextnext-i18next,可以使用此方法翻译项目的 JSON 文件。

翻译结果会自动保存到你的代码库中。

要使用 CLI 工具翻译项目的 JSON 文件,请修改 gt.config.json,在 files 属性中加入 json。 更多详情请参阅 CLI 配置文档

npx gtx-cli translate

该 CLI(命令行界面)工具会通过读取你的 package.json 文件自动检测所使用的 i18n 库,并在遵循该库语法的前提下翻译你的 JSON 文件。

方法二:翻译你的 GT 项目

如果你的项目使用 gt-nextgt-react,可以通过此方法为项目生成翻译。

npx gtx-cli translate

默认情况下,翻译会保存到 GT CDN(内容分发网络)。

如果你希望将翻译保存到代码库中,请在 gt.config.json 文件的 files 对象中添加 gt 属性。

gt-nextgt-react 既支持本地提供翻译,也支持使用 General Translation 的公共 CDN(内容分发网络)。 我们建议使用 CDN,以降低延迟、提升性能,并减小打包体积。

查看CLI 配置文档了解更多详情。

方法三:验证项目的 <T> 组件和字典文件。

此方法用于验证项目的 <T> 组件和字典文件。

这可确保项目已正确配置,且译文有效且准确。

如果使用 --dry-run 标志,将不会生成任何翻译。

npx gtx-cli translate --dry-run

标志

参数描述类型可选默认值
--api-key指定生产环境 API keystringtrue
--project-id指定项目 IDstringtrue
--version-id指定版本 ID(默认是内容的哈希值)stringtrue
--config <path>指定 GT 配置文件路径stringtrue"gt.config.json"
--tsconfig, --jsconfig <path>指定 TS 或 JS 配置文件路径stringtrue
--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>指定字典文件路径stringtrue
--inline在使用字典的同时包含内联 <T> 标签booleantruetrue
--timeout翻译请求的超时时间(秒)numbertrue600
--new, --locales <locales>将项目翻译到的语言/地区[string]true
--default-locale <locale>项目的源语言/地区stringtrueen
--ignore-errors忽略错误并对有效内容强制执行翻译flagtruefalse
--dry-run试运行该命令flagtruefalse
--force强制重新翻译项目flagtruefalse
--force-download强制下载项目的所有译文flagtruefalse

以上所有参数都是可选的。

不要将你的 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 属性。

本指南如何?