# General Translation React SDKs (gt-react, gt-next, gt-react-native): 使用服务器函数 URL: https://generaltranslation.com/zh/docs/react/tanstack-start/using-server-functions.mdx --- title: 使用服务器函数 description: 如何在 TanStack Start 服务器函数中使用 General Translation 翻译字符串并读取请求状态。 --- `gt-tanstack-start/server` 入口为加载器、服务器函数和服务器端渲染的元数据提供请求级翻译辅助函数。 ## 开始之前 [#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/server'; 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

{data.title}

; } ``` 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 { msg } from 'gt-tanstack-start'; import { getMessages, getTranslations, } from 'gt-tanstack-start/server'; 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'), }; }); ```