Next.js セットアップ
アダプターをインストール
Section titled “アダプターをインストール”npm install tyndale-next-
Next.js config を更新
next.config.mjs import { withTyndaleConfig } from 'tyndale-next/config';export default withTyndaleConfig({// your existing Next.js config}); -
middleware を追加
middleware.ts import { createTyndaleMiddleware } from 'tyndale-next/middleware';export default createTyndaleMiddleware();export const config = {matcher: ['/((?!api|_next|_tyndale|.*\\..*).*)'],};これにより、locale の検出、locale プレフィックス付きルートへのリダイレクト、そして有効な locale の cookie への永続化が行われます。
-
レイアウトにサーバープロバイダーを追加
app/[locale]/layout.tsx import { getDirection, TyndaleServerProvider } from 'tyndale-next/server';export default async function RootLayout({children,params,}: {children: React.ReactNode;params: Promise<{ locale: string }>;}) {const { locale } = await params;return (<html lang={locale} dir={getDirection(locale)}><body><TyndaleServerProvider locale={locale}>{children}</TyndaleServerProvider></body></html>);}TyndaleServerProviderはサーバー上で locale データを読み込みます。サーバーコンポーネントではgetDirection(locale)、クライアントコンポーネントではuseDirection()を使って、自分で<html dir>を設定してください。
withTyndaleConfigはtyndale.config.jsonを読み取り、Tyndale がランタイムで使用するビルド時の環境変数を注入し、tyndale-reactにエイリアスを設定して、アプリが単一の provider context を共有できるようにします- middleware はリクエストを locale プレフィックス付きルートへリダイレクトし、locale エイリアスを正規化し、下流のレンダリングのために locale cookie/header を設定します
TyndaleServerProviderはサーバーサイドで翻訳を読み込み、React context を通じてすべてのコンポーネントで利用できるようにします