翻译

如何为你的项目进行翻译

用法

在进行生产构建之前,请在 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-intlreact-i18nextnext-i18next,可以采用此方法来翻译项目的 JSON 文件。

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

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

npx gtx-cli translate

该 CLI 工具会通过读取你的 package.json 文件自动检测所使用的 i18n 库,并在遵循该 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>要将项目翻译成的目标 locales[string]true
--default-locale <locale>项目的源 localestringtrueen
--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>要将项目翻译成的目标 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 属性来指定其他字典文件。

这份指南怎么样?

翻译