# General Translation React SDKs (gt-react, gt-next): Middleware для Pages Router URL: https://generaltranslation.com/ru/docs/react/nextjs/pages-router-middleware.mdx --- title: Middleware для Pages Router description: Как настроить маршрутизацию по локалям General Translation для Next.js Pages Router. related: links: - /docs/react/nextjs-pages-router-quickstart - /docs/react/nextjs/pages-router-static-site-generation - /docs/react/nextjs/reference/functions/create-next-middleware --- Настройте middleware и корневой сегмент `[locale]`, чтобы запросы Pages Router разрешались в правильный локализованный маршрут. ## Настройте middleware [#middleware] Создайте `proxy.ts` в корне проекта (`middleware.ts` в Next.js 15 и более ранних версиях): ```ts title="proxy.ts" import { createNextMiddleware } from 'gt-next/middleware'; export default createNextMiddleware(); export const config = { matcher: ['/((?!api|static|.*\\..*|_next).*)'], }; ``` Middleware определяет локаль по URL, cookie-файлу, заголовкам браузера или локали по умолчанию. Затем он перенаправляет запрос на соответствующий локализованный маршрут или переписывает его. ## Добавьте маршрут с локалью [#locale-route] Переместите страницы Pages Router в `pages/[locale]`. Оставьте `_app.tsx` в корне `pages`: Этот сегмент маршрута получает локаль, выбранную в middleware. Параметры маршрутизации и конфигурацию локализованных путей см. в [`createNextMiddleware`](/docs/react/nextjs/reference/functions/create-next-middleware). ## Подключите обработку изменений локали [#locale-changes] Переопределите `_reload` в [`GTProvider`](/docs/react/reference/components/gt-provider), чтобы при изменении локали использовалась навигация Pages Router и загружались пропсы страницы для выбранной локали: ```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`. Колбэк заменяет стандартную для 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