字符串翻译

如何进行字符串翻译

概览

本指南将逐步演示如何在 Next.js 应用中使用 useGTgetGTtx 来翻译字符串。

前置条件

我们假设你已在项目中安装了 gt-next,并已阅读或正按照快速入门指南进行操作。

翻译文本字符串

客户端组件

对任意客户端字符串,请使用 useGT。 请注意,必须在 <GTProvider> 的子组件中调用 useGT

src/components/MyComponent.jsx
import { useGT } from 'gt-next';

export default function MyComponent() {
  const t = useGT(); 
  return (
    <div>
      <h1>{t('这是一段将被翻译的文本字符串')}</h1> // [!code highlight]
    </div>
  );
}

服务端组件

处理任何服务端字符串时,请使用 getGT

src/pages/index.jsx
import { getGT } from 'gt-next/server';

export default async function Home() {
  const t = await getGT(); 
  return (
    <div>
      <h1>{t('这是一条会被翻译的字符串')}</h1> // [!code highlight]
    </div>
  );
}

注意: 在开发环境中,如果你在运行时进行内容翻译,你需要刷新页面才能看到由 getGT 返回的字符串的译文。 生产环境不会出现这种情况。

添加变量

变量是可能变化的值,但不会被翻译。 要将变量添加到字符串中,请使用以下模式:

MyComponent.jsx
import { useGT } from 'gt-next';

export default function MyComponent() {
  const t = useGT();
  return (
    <div>
      <h1>{t('你好,{username}', { variables: { username: 'Brian123' }})}</h1> // [!code highlight]
    </div>
  );
}

这同样适用于 useGTgetGT

动态内容

假设你有一个会变化的字符串。 你可以使用 tx 函数在运行时对该字符串进行翻译。

MyComponent.jsx
import { tx } from 'gt-next/server';

export default async function MyComponent({ username }) {
  const translation = await tx(`你好,${username}。你今天过得怎么样?`); 
  return (
    <div>
      <h1>{translation}</h1> // [!code highlight]
    </div>
  );
}

注意: tx 函数仅在服务端可用,且应仅在必要时使用。 运行时翻译常会引入延迟。 尽可能使用 getGTuseGT 在部署前完成翻译。


注意事项

  • 要翻译字符串,请使用 useGTgetGTtx
  • useGTgetGT 会在部署前完成翻译,而 tx 会在运行时翻译。请谨慎使用 tx
  • 可使用 { variables: { key: value } } 模式向字符串中注入变量。

后续步骤

本指南如何?