快速开始

使用 gt-react 轻松国际化您的 React 应用

概述

本快速入门指南将引导您使用 gt-react 对 React 应用进行国际化。

在本指南结束时,您将拥有一个完全国际化的 React 应用。

在本指南中,我们将涵盖以下内容:

安装

配置

使用

测试您的应用

部署

前提条件

  • 使用受支持框架(Next.js、Vite 等)的 React 项目
  • React 和 JavaScript 的基础知识

安装

安装 gt-reactgtx-cli 包:

npm i gt-react
npm i --save-dev gtx-cli
yarn add gt-react
yarn add --dev gtx-cli
bun add gt-react
bun add --dev gtx-cli
pnpm add gt-react
pnpm add --save-dev gtx-cli

自动设置: 我们有一个实验性的设置向导,可以帮助您使用 gt-react 设置项目。

通过运行 npx gtx-cli@latest 来试用。您仍需要手动国际化字符串,但它会帮助您开始。

查看设置向导参考指南了解更多信息。

或者,如果您希望您的 AI 工具(如 Claude Code、Cursor 或 Windsurf)自动设置您的项目, 您可以使用我们的 mcp server

配置

GTProvider

gt-react 的核心是 GTProvider 组件。

它负责:

  • 管理用户的当前语言环境
  • 为您的应用程序提供相关翻译
  • 为访问翻译的钩子提供上下文
  • 为更改用户语言环境的钩子提供上下文

首先,将 GTProvider 组件添加到您的应用程序中。它应该尽可能放置在组件树的高层位置。

src/App.tsx
import { GTProvider } from 'gt-react';

export default function App() {
  return (
    <GTProvider>
      <App />
    </GTProvider>
  );
}

接下来,在项目根目录中创建一个 gt.config.json 文件。 此文件用于配置 gtx-cli 工具和 gt-react 库。

gt.config.json
{
  "defaultLocale": "en",
  "locales": ["fr", "es"]
}

您应该自定义 defaultLocalelocales 以匹配您的项目。有关更多信息,请参阅支持的语言环境列表。

最后,将 gt.config.json 文件展开到提供者的属性中。

import gtConfig from './gt.config.json';

<GTProvider {...gtConfig}>
  <App />
</GTProvider>

展开 gt.config.json 文件使配置在您的应用程序和 CLI 工具之间保持一致。

或者,您可以在 GTProvider 组件中单独指定每个属性。

<GTProvider
  defaultLocale="en"
  locales={["fr", "es"]}
>

环境变量

设置以下环境变量:

VITE_GT_API_KEY="" # Your General Translation Developer API key
VITE_GT_PROJECT_ID="" # Your General Translation project ID
GATSBY_GT_API_KEY="" # Your General Translation Developer API key
GATSBY_GT_PROJECT_ID="" # Your General Translation project ID
REDWOOD_ENV_GT_API_KEY="" # Your General Translation Developer API key
REDWOOD_ENV_PROJECT_ID="" # Your General Translation project ID
NEXT_PUBLIC_GT_API_KEY="" # Your General Translation Developer API key
NEXT_PUBLIC_GT_PROJECT_ID="" # Your General Translation project ID
REACT_APP_GT_API_KEY="" # Your General Translation Developer API key
REACT_APP_GT_PROJECT_ID="" # Your General Translation project ID

许多 React 框架都有各自独特的方式将环境变量导出到客户端。 在开发环境中,GT_API_KEYGT_PROJECT_ID 都需要导出到客户端。

到目前为止,我们已经为一些库添加了支持, 但如果您的框架未列出,请通过在我们的 GitHub 仓库中创建问题来告知我们。

确保您的 API 密钥变量仅在开发环境中设置!它不应该在生产环境中设置。

您可以通过创建 General Translation 账户来获取免费的 API 密钥和项目 ID。

创建账户后,导航到开发 API 密钥页面以获取您的开发 API 密钥和项目 ID。

或者,您也可以使用 CLI 工具命令 npx gtx-cli auth 为您的项目生成 API 密钥和项目 ID,保存到您的 .env.local 文件中。


使用方法

太好了!如果您已经按照上述步骤操作,您的 React 项目现在已经设置好使用 gt-react 了。

下一步是国际化您的内容。 在这里,我们将简要概述在您的应用程序中翻译内容的不同方法。

<T> 组件

<T> 组件是在您的应用程序中翻译 JSX 内容的主要组件。

要使用它,只需将您想要翻译的 JSX 包装在 <T> 组件中。

import { T } from 'gt-react';
<T>
  <div>Your content</div>
</T>

如果您有动态内容,您需要使用变量组件来传入动态值。

import { T, Var } from 'gt-react';

<T>
  <div>Hello, <Var>{name}</Var>!</div>
</T>

查看翻译 JSX 指南了解更多信息。

useGT Hook

useGT hook 是一个 React hook,它返回一个可用于翻译字符串的函数。

import { useGT } from 'gt-react';

const translate = useGT();
translate('Hello, world!');

查看翻译字符串 指南了解更多信息。

利用热重载翻译功能将有助于国际化您的应用程序。

要启用此功能,请确保在您的开发环境中设置了 GT_API_KEYGT_PROJECT_ID 环境变量。


测试你的应用

恭喜你!🥳 如果你已经按照上面的步骤操作,你的应用现在已经支持多语言了!让我们来看看它的实际效果。

在不同语言下查看你的应用

<LocaleSelector> 组件添加到你的应用中。 这样你就可以为你的应用选择不同的语言了。

提示: 你也可以跳过这一步,直接在浏览器设置中更改你的语言。

以开发模式启动你的 React 应用。

npm run dev 
yarn run dev 
bun run dev 
pnpm run dev 

在你喜欢的浏览器中打开你的应用(通常地址为 http://localhost:3000)。

故障排查


部署

太好了!如果您对翻译结果和应用程序的功能感到满意,现在可以部署您的应用程序了。

gt-react 在生产环境中的行为与开发环境略有不同。具体来说,不会在运行时执行翻译。

这意味着您需要在部署应用程序之前,在构建过程中翻译您的内容。

幸运的是,gtx-cli 工具有一个 translate 命令,可以用来自动翻译您的内容。

首先,您需要从 General Translation 平台 获取生产环境 API 密钥。

请注意,此密钥与您的开发环境 API 密钥不同,以 gtx-api- 开头,而不是 gtx-dev-

这里了解开发环境和生产环境密钥之间的区别。

将此环境变量添加到您的 CI/CD 流水线中。

GT_PROJECT_ID=<your-project-id>
GT_API_KEY=<your-production-api-key>

确保 GT_API_KEY 不要NEXT_PUBLIC_VITE_ 为前缀,这取决于您的框架!

如果有前缀,您将面临向公众暴露 API 密钥的风险。

运行 translate 命令来翻译您的内容。

npx gtx-cli translate

您可以通过 gt.config.json 文件配置 translate 命令的行为。

查看 CLI 工具 参考指南了解更多信息。

translate 命令添加到您的构建过程中。

package.json
{
  "scripts": {
    "build": "npx gtx-cli translate && <...YOUR_BUILD_COMMAND...>"
  }
}


总结

  • 在本指南中,我们介绍了如何使用 gt-react 设置您的 React 项目
  • 我们简要介绍了在应用程序中翻译内容的不同方法。
  • 我们还介绍了在国际化内容后如何部署应用程序。

下一步

这份指南怎么样?