# 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