# General Translation React SDKs (gt-react, gt-next): Pages Router ミドルウェア URL: https://generaltranslation.com/ja/docs/react/nextjs/pages-router-middleware.mdx --- title: Pages Router ミドルウェア description: Next.js Pages Router 向けに General Translation のロケールルーティングを設定する方法。 related: links: - /docs/react/nextjs-pages-router-quickstart - /docs/react/nextjs/pages-router-static-site-generation - /docs/react/nextjs/reference/functions/create-next-middleware --- ミドルウェアと `[locale]` のルートセグメントを設定し、Pages Router のリクエストが適切なローカライズ済みルートにルーティングされるようにします。 ## ミドルウェアを設定する [#middleware] プロジェクトルートに `proxy.ts` を作成します (Next.js 15 以前では `middleware.ts` を使用) : ```ts title="proxy.ts" import { createNextMiddleware } from 'gt-next/middleware'; export default createNextMiddleware(); export const config = { matcher: ['/((?!api|static|.*\\..*|_next).*)'], }; ``` ミドルウェアは、URL、cookie、ブラウザのヘッダー、またはデフォルトロケールからロケールを検出します。次に、リクエストを対応するローカライズ済みルートにリダイレクトまたはリライトします。 ## ロケールルートを追加する [#locale-route] Pages Router のページを `pages/[locale]` の下に移動します。`_app.tsx` は `pages` のルートに置いたままにします。 このルートセグメントには、ミドルウェアで選択されたロケールが渡されます。ルーティングオプションとローカライズされたパスの設定については、[`createNextMiddleware`](/docs/react/nextjs/reference/functions/create-next-middleware) を参照してください。 ## ロケール変更を連動させる [#locale-changes] [`GTProvider`](/docs/react/reference/components/gt-provider) の `_reload` をオーバーライドして、ロケール変更時に Pages Router のナビゲーションを使い、選択したロケールのページ props を読み込むようにします: ```tsx title="pages/_app.tsx" import type { AppProps } from 'next/app'; import { useRouter } from 'next/router'; import { GTProvider, type WithGTStaticProps } from 'gt-next'; export default function App({ Component, pageProps, }: AppProps) { const router = useRouter(); const { locale, translations, ...restPageProps } = pageProps; return ( { void router.push( { pathname: router.pathname, query: router.query }, router.asPath, { locale: nextLocale } ); }} > ); } ``` サーバーサイドでレンダリングされるページでは、代わりに `WithGTServerSideProps` を使用してください。この callback は、provider のデフォルトのページ全体の再読み込みを、Pages Router を使ったナビゲーションに置き換えます。 ## Next steps - /docs/react/nextjs-pages-router-quickstart - /docs/react/nextjs/pages-router-static-site-generation - /docs/react/nextjs/reference/functions/create-next-middleware