# 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
Docs index: https://generaltranslation.com/llms.txt
Description: 为 TanStack Start 服务器函数创建请求级区域设置状态。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 文件可在客户端构建中使用根目录导入。 |

## Sitemap

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