使用指南

GT命令行工具的使用指南

概述

本指南将引导您使用General Translation的CLI工具(gtx-cli)来翻译您的项目。

CLI工具与任何i18n库兼容,无论您使用的是gt-nextgt-react,还是第三方库如next-intlreact-i18next

CLI工具负责将您的项目连接到General Translation的AI翻译服务。

使用CLI工具有几种方式,请导航到与您的使用场景相关的部分。

安装

要安装CLI工具,请运行以下命令:

npm i --save-dev gtx-cli

使用场景

翻译GT项目

CLI工具可用于翻译使用gt-nextgt-react的项目。

本指南假设您已经按照gt-nextgt-react教程设置了您的代码库。

  1. 首先,您需要在项目中初始化CLI工具。
npx gtx-cli init
  1. 接下来,您需要在General Translation仪表板中创建一个项目。

创建项目后,您需要生成一个生产环境API密钥。导航到"API密钥"页面并点击"创建API密钥"按钮。

  1. 然后,将您的API密钥和项目ID添加到环境变量中。
.env
GT_API_KEY=<your-api-key>
GT_PROJECT_ID=<your-project-id>
  1. 最后,运行翻译命令。
npx gtx-cli translate

默认情况下,CLI工具会将翻译发布到General Translation CDN,以便在您的项目中使用。 如果您想禁用此行为(例如,如果您从不同的源加载翻译),请在命令中添加--no-publish标志。

有关translate命令的更多信息,请参阅API参考

翻译语言文件(第三方i18n库或独立GT项目)

CLI工具允许您翻译第三方i18n库的语言文件,或者与gt-nextgt-react的独立实现一起使用。

大多数i18n库依赖JSON文件来存储翻译数据。 CLI工具可用于自动将这些JSON文件翻译成您所需的语言。

  1. 首先,您需要在项目中初始化CLI工具。
npx gtx-cli init

此命令将在项目根目录创建一个gt.config.json文件,其中包含一些基本配置设置,如项目的默认语言和支持的语言。

  1. 接下来,您需要在General Translation仪表板中创建一个项目。

创建项目后,您需要生成一个生产环境API密钥。导航到"API密钥"页面并点击"创建API密钥"按钮。

  1. 然后,将您的API密钥和项目ID添加到环境变量中。
.env
GT_API_KEY=<your-api-key>
GT_PROJECT_ID=<your-project-id>
  1. 最后,运行翻译命令。
npx gtx-cli translate

默认情况下,CLI工具将在您的gt.config.json文件中指定的translationsDir目录中查找要翻译的语言文件。 它将使用您的gt.config.json文件中指定的defaultLocale作为源语言。

它还会将翻译发布到General Translation CDN,以便在您的项目中使用。 如果您想禁用此行为,请在命令中添加--no-publish标志。

为GT项目生成语言文件

CLI工具可用于为使用gt-nextgt-react的项目生成语言文件。

如果您想使用自己的翻译提供商,这个用例很有用。

与其他i18n库不同,gt-nextgt-react支持内联翻译,这意味着没有传统的JSON文件结构包含每种语言的键和值。

这意味着为了跟踪文本的变化,GT库在源代码中存储原始文本的哈希值。

这种内部数据结构(包含哈希值)很难使用,因此CLI工具提供了一个方便的命令来为您的项目生成语言文件。

  1. 首先,您需要在项目中初始化CLI工具。
npx gtx-cli init

当被问到"您的语言文件存储在哪里?"时,选择"Local"选项。

  1. 运行:
npx gtx-cli generate

此命令将为您的默认语言环境和您为项目配置的所有其他语言环境生成源文件。

每个文件的内容相同,并将与您项目中之前的任何翻译合并。

有关generate命令的更多信息,请参阅API参考


注意

  • gtx-cli translate用于自动为您的项目生成翻译。
  • 如果您使用第三方i18n库,您可以在项目每次更改时自动更新所有翻译JSON文件。只需在构建命令之前将gtx-cli translate命令添加到您的构建或CD流程中,即可自动将翻译添加到您的项目中。

下一步

  • 有关更多信息,请参阅CLI API参考
  • 如果您想在开发中看到实时翻译(类似热重载),请查看<T>组件

在本页面