# General Translation React SDKs (gt-react, gt-next, gt-react-native): 使用服务器函数
URL: https://generaltranslation.com/zh/docs/react/tanstack-start/using-server-functions.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: 如何在 TanStack Start 服务器函数中使用 General Translation 翻译字符串并读取请求状态。

从 `gt-tanstack-start` 导入同构 Runtime 辅助函数。在加载器、服务器函数和服务器端渲染的元数据中，请在当前请求上下文内调用它们。

## 开始之前 [#before-start]

完成 [TanStack Start 设置](/docs/react/tanstack-start/setup)。你必须全局注册 [`gtMiddleware`](/docs/react/tanstack-start/reference/functions/gt-middleware)，并在中间件处理请求前调用 [`initializeGT`](/docs/react/reference/config#initialize)。

如果在当前中间件请求上下文之外从服务器调用这些辅助函数，会抛出异常。

## 在服务器函数中进行翻译 [#translate]

创建一个 TanStack Start 服务器函数，然后在其处理函数中调用 [`getGT`](/docs/react/tanstack-start/reference/functions/get-gt)。如果响应还需要用到请求状态，请使用 [`getLocale`](/docs/react/tanstack-start/reference/functions/get-locale) 和 [`getEnableI18n`](/docs/react/tanstack-start/reference/functions/get-enable-i18n)。

```tsx title="src/routes/account.tsx"
import { createFileRoute } from '@tanstack/react-router';
import { createServerFn } from '@tanstack/react-start';
import {
  getEnableI18n,
  getGT,
  getLocale,
} from 'gt-tanstack-start';

const loadAccount = createServerFn({ method: 'GET' }).handler(async () => {
  const gt = await getGT();

  return {
    locale: getLocale(),
    enableI18n: getEnableI18n(),
    title: gt('Account'),
  };
});

export const Route = createFileRoute('/account')({
  loader: () => loadAccount(),
  head: ({ loaderData }) => ({
    meta: [{ title: loaderData?.title }],
  }),
  component: Account,
});

function Account() {
  const data = Route.useLoaderData();
  return <h1>{data.title}</h1>;
}
```

TanStack Start 会在请求上下文中运行处理函数。每个请求都会拥有各自的区域设置和国际化配置，包括在并发服务器端渲染期间也是如此。

## 翻译已注册的消息和词典 [#messages]

对于使用 [`msg`](/docs/react/reference/functions/msg) 注册的字符串，请使用 [`getMessages`](/docs/react/tanstack-start/reference/functions/get-messages)。对于词典条目，请使用 [`getTranslations`](/docs/react/tanstack-start/reference/functions/get-translations)。

```ts
import { createServerFn } from '@tanstack/react-start';
import {
  getMessages,
  getTranslations,
  msg,
} from 'gt-tanstack-start';

const status = msg('Ready');

export const loadCopy = createServerFn({ method: 'GET' }).handler(async () => {
  const m = await getMessages();
  const t = await getTranslations('account');

  return {
    status: m(status),
    heading: t('heading'),
  };
});
```

## Sitemap

See the full [sitemap](https://generaltranslation.com/sitemap.md) for all pages.
