著者:
    作成:2026-09-19最終更新:2026-09-19

    intlayer ミドルウェア

    intlayer ミドルウェア関数は、Remix 3 アプリケーションでリクエスト単位の国際化を設定します。受信したリクエストごとにロケールを検出し、URL リダイレクトルールを適用し、リクエストコンテキストにロケール状態を永続化します。

    使用方法

    Remix ルーターにミドルウェアを登録します。

    src/server.ts
    import { createRouter } from "remix/router";
    import { intlayer } from "remix-intlayer";
    
    export const router = createRouter({
      middleware: [intlayer()],
    });
    

    動作の仕組み

    ミドルウェアは各受信リクエストに対して以下のタスクを実行します。

    1. ロケール検出: Intlayer の設定に従い、URL パスプレフィックス(例: /ja/about)、クッキー、または Accept-Language ヘッダーからロケールを抽出します。
    2. URL リダイレクト: 要求されたパスにロケールプレフィックスがなく、設定でプレフィックス付きルーティングが必要な場合、プレフィックス付き URL へのリダイレクトレスポンス(302/307/308)を返します。
    3. リクエストコンテキストの登録: Intlayer キーを使用して解決された現在のロケールを Remix リクエストコンテキストに保存し、フック(useLocaleuseIntlayeruseDictionary)が透過的に利用できるようにします。
    4. クッキー管理: ユーザーの優先ロケールを永続化する必要がある場合、Set-Cookie ヘッダーを設定します。

    関連ドキュメント