# General Translation React SDKs (gt-react, gt-next, gt-react-native): gtMiddleware
URL: https://generaltranslation.com/ja/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` からインポートし、サーバーで Runtime ヘルパーを呼び出す前に登録してください。

## 概要 [#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 の設定に基づいて、ロケール、リージョン、国際化設定を解決します。
* `localeRouting` が有効な場合、ロケール cookie や `Accept-Language` header よりも、先頭のサポート対象パスセグメントを優先します。デフォルトロケールにはプレフィックスは付きません。
* `TSS_ROUTER_BASEPATH` を通じて TanStack Router のベースパスを尊重します。
* これらの値を、サーバーサイドレンダリング、サーバールート、サーバー関数用のリクエストローカルな状態に保存します。
* 同時に処理されるサーバーリクエスト間でも、リクエスト状態を分離したまま保ちます。
* 解決されたロケールを General Translation のロケール 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` をエクスポートしました。 |

## Sitemap

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