# General Translation React SDKs (gt-react, gt-next, gt-react-native): gtMiddleware URL: https://generaltranslation.com/en-US/docs/react/tanstack-start/reference/functions/gt-middleware.mdx --- title: gtMiddleware description: Create request-scoped locale state for General Translation server APIs in TanStack Start. API reference for gtMiddleware. --- The `gtMiddleware` export is global TanStack Start request middleware. Import it from `gt-tanstack-start/server` and register it before calling any request-scoped server helper. ## Overview [#overview] ```ts title="src/start.ts" import { createCsrfMiddleware, createStart } from '@tanstack/react-start'; import { gtMiddleware } from 'gt-tanstack-start/server'; const csrfMiddleware = createCsrfMiddleware({ filter: ({ handlerType }) => handlerType === 'serverFn', }); export const startInstance = createStart(() => ({ requestMiddleware: [csrfMiddleware, gtMiddleware], })); ``` ## How it works [#how-it-works] - Resolves the locale, region, and internationalization setting from the incoming request and your General Translation configuration. - Stores those values in request-local state for server-side rendering, server routes, and server functions. - Keeps request state isolated during concurrent server requests. - Persists the resolved locale in the General Translation locale cookie. Call [`initializeGT`](/docs/react/reference/config#initialize) from `gt-tanstack-start` before the middleware handles a request. The middleware throws if initialization has not created its condition store. ## Server helpers [#server-helpers] The middleware provides request state to: - [`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) These helpers throw when called outside the active middleware request scope.