# General Translation React SDKs (gt-react, gt-next, gt-react-native): gtMiddleware URL: https://generaltranslation.com/zh/docs/react/tanstack-start/reference/functions/gt-middleware.mdx --- title: gtMiddleware description: 在 TanStack Start 中为 General Translation 服务器 API 创建请求级区域设置状态。gtMiddleware 的 API 参考。 --- `gtMiddleware` 导出项是全局 TanStack Start 请求中间件。从 `gt-tanstack-start` 导入它,并在服务器上调用运行时辅助函数之前完成注册。 ## 概览 [#overview] ```ts title="src/start.ts" import { createCsrfMiddleware, createStart } from '@tanstack/react-start'; import { gtMiddleware } from 'gt-tanstack-start'; const csrfMiddleware = createCsrfMiddleware({ filter: ({ handlerType }) => handlerType === 'serverFn', }); export const startInstance = createStart(() => ({ requestMiddleware: [csrfMiddleware, gtMiddleware], })); ``` ## 工作原理 [#how-it-works] * 根据传入的请求和你的 General Translation 配置,解析区域设置、region 和国际化设置。 * 启用 `localeRouting` 时,优先使用第一个受支持的路径段,而不是 locale cookie 和 `Accept-Language` 标头。默认区域设置保持不带前缀。 * 通过 `TSS_ROUTER_BASEPATH` 遵循 TanStack Router 的基础路径。 * 将这些值存储在请求级本地状态中,用于服务器端渲染、服务器路由和服务器函数。 * 在并发的服务器请求之间保持请求状态隔离。 * 将解析后的区域设置持久化到 General Translation 的 locale cookie 中。 在中间件处理请求之前,先通过 `gt-tanstack-start` 调用 [`initializeGT`](/docs/react/reference/config#initialize)。如果初始化尚未创建对应的 condition store,中间件会抛出异常。 ## 服务端辅助函数 [#server-helpers] 中间件会将请求状态提供给以下函数: * [`getLocale`](/docs/react/tanstack-start/reference/functions/get-locale) * [`getEnableI18n`](/docs/react/tanstack-start/reference/functions/get-enable-i18n) * [`getGT`](/docs/react/tanstack-start/reference/functions/get-gt) * [`getMessages`](/docs/react/tanstack-start/reference/functions/get-messages) * [`getTranslations`](/docs/react/tanstack-start/reference/functions/get-translations) 这些辅助函数是同构的。它们的服务端分支如果在当前中间件请求作用域之外调用,会抛出异常;客户端分支会读取由 [`initializeGT`](/docs/react/reference/config#initialize) 初始化的浏览器 condition store。 ## 版本历史 [#version-history] | 版本 | 变更 | | -------- | ------------------------------------------------------- | | `11.1.5` | 在根目录浏览器条件下导出 `gtMiddleware`,以便 setup 文件可在客户端构建中使用根目录导入。 |