# General Translation React SDKs (gt-react, gt-next): リクエストロケールを登録する URL: https://generaltranslation.com/ja/docs/react/nextjs/registering-request-locales.mdx --- title: リクエストロケールを登録する description: General Translation で Next.js App Router のルートハンドラーと生成されるメタデータ画像に対してロケールを登録する方法。 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` を通してロケールを読み取ります。ルートハンドラーと生成されるメタデータ画像ハンドラーでは、このモジュールは使用できません。ハンドラーの入力からロケールを読み取り、他の `gt-next/server` 関数を呼び出す前に [`registerLocale`](/docs/react/nextjs/reference/functions/register-locale) を呼び出してください。 ## ルートハンドラーを登録する [#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]` の外側にあるハンドラーでは、API に応じて `Request` の URL、ヘッダー、クエリパラメータ、またはボディからロケールを取得し、その後は同じ方法で登録します。 登録されたロケールは、リクエストの残りの処理で [`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、アイコン、Apple アイコンの各ファイルも、ルートの `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(