# General Translation React SDKs (gt-react, gt-next): Регистрация локалей запроса URL: https://generaltranslation.com/ru/docs/react/nextjs/registering-request-locales.mdx --- title: Регистрация локалей запроса description: Как зарегистрировать локаль для обработчиков маршрутов Next.js App Router и обработчиков сгенерированных изображений метаданных с помощью General Translation. related: links: - /docs/react/nextjs/reference/functions/register-locale - /docs/react/nextjs/app-router-middleware - /docs/react/nextjs/reference/functions/get-locale - /docs/react/nextjs/reference/functions/get-gt --- Если в корне есть сегмент `[locale]`, `gt-next` обычно считывает локаль через `next/root-params`. Обработчики маршрутов и обработчики сгенерированных изображений метаданных не могут использовать этот модуль. Считайте локаль из входных данных обработчика, а затем вызовите [`registerLocale`](/docs/react/nextjs/reference/functions/register-locale) перед вызовом любой другой функции `gt-next/server`. ## Зарегистрируйте обработчик маршрута [#route-handlers] Для обработчика, расположенного ниже `app/[locale]`, считывайте локаль из `params`: ```ts title="app/[locale]/api/greeting/route.ts" import { getGT, registerLocale } from 'gt-next/server'; export async function GET( _request: Request, { params }: { params: Promise<{ locale: string }> }, ) { const { locale } = await params; registerLocale(locale); const gt = await getGT(); return Response.json({ greeting: gt('Welcome') }); } ``` Для обработчика вне `[locale]` извлеките локаль из URL объекта `Request`, заголовков, параметров строки запроса или тела запроса в соответствии с вашим API, а затем зарегистрируйте её таким же образом. Зарегистрированная локаль будет доступна в [`getGT`](/docs/react/nextjs/reference/functions/get-gt), [`getLocale`](/docs/react/nextjs/reference/functions/get-locale), [`getTranslations`](/docs/react/nextjs/reference/functions/get-translations), [`getMessages`](/docs/react/nextjs/reference/functions/get-messages) и других функциях `gt-next/server` на всём протяжении обработки запроса. ## Зарегистрируйте обработчик изображения метаданных [#metadata-images] Сгенерированные файлы Open Graph, Twitter, icon и Apple icon также получают `params` маршрута: ```tsx title="app/[locale]/opengraph-image.tsx" import { ImageResponse } from 'next/og'; import { getGT, registerLocale } from 'gt-next/server'; export default async function Image({ params, }: { params: Promise<{ locale: string }>; }) { const { locale } = await params; registerLocale(locale); const gt = await getGT(); return new ImageResponse(
{gt('Welcome')}
); } ``` Используйте тот же паттерн в `twitter-image.tsx`, `icon.tsx` и `apple-icon.tsx`. ## Обработка других точек входа [#other-entry-points] `generateMetadata` получает параметры динамического маршрута от корня до текущего сегмента, поэтому у него нет того же ограничения, что и у обработчика изображения метаданных. Сгенерированные файлы `sitemap.ts`, `robots.ts` и `manifest.ts` не получают параметры маршрута или объект запроса. Явно выберите локаль в логике генерации, а затем зарегистрируйте её перед вызовом функции из `gt-next/server`. Регистрация действует в пределах запроса. Вызовите `registerLocale` один раз: после определения локали и до вызова любой другой серверной функции General Translation. ## Next steps - /docs/react/nextjs/reference/functions/register-locale - /docs/react/nextjs/app-router-middleware - /docs/react/nextjs/reference/functions/get-locale - /docs/react/nextjs/reference/functions/get-gt