# 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 --- title: gtMiddleware description: TanStack Start で General Translation のサーバー API 用に、リクエストスコープのロケール状態を作成します。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` をエクスポートしました。 |