著者:
このドキュメントをあなたの好きなAIアシスタントに参照してくださいChatGPTClaudeDeepSeekGoogle AI modeGeminiPerplexityMistralGrok
このページとあなたの好きなAIアシスタントを使ってドキュメントを要約します
バージョン履歴
- "intlayer ミドルウェアの初期ドキュメント"v9.5.52026/9/19
このページのコンテンツはAIを使用して翻訳されました。
英語の元のコンテンツの最新バージョンを見るこのドキュメントを編集
このドキュメントを改善するアイデアがある場合は、GitHubでプルリクエストを送信することで自由に貢献してください。
ドキュメントへのGitHubリンク作成:2026-09-19最終更新:2026-09-19
コピー
ドキュメントのMarkdownをクリップボードにコピー
intlayer Remix 3 ミドルウェアドキュメント
Remix 3 向けの intlayer ミドルウェアは、アプリケーション全体の国際化レイヤーを管理します。Web 標準(Request と Response)に基づいて構築されており、ロケールルーティング(リダイレクトと内部リライト)を処理し、リクエストのロケールを検出して、クッキーとヘッダーに永続化します。さらに AsyncLocalStorage スコープを確立することで、下流のハンドラーやコンポーネントが props のバケツリレーなしに翻訳へアクセスできるようにします。
使用方法
Remix 3 ルーターの初期化時に intlayer ミドルウェアを登録します。
src/server.ts
コードをコピー
コードをクリップボードにコピー
説明
intlayer ミドルウェアは以下のタスクを実行します。
- 辞書の準備: 起動時に
prepareIntlayerを実行し、生成されたすべての辞書がビルドされ利用可能であることを保証します。 - ロケールルーティング: 設定されたルーティング戦略(
prefix_always、prefix_as_needed、no_prefix)に基づいてリクエストを評価します。- リダイレクト: ユーザーが
/aboutにアクセスし、ロケールプレフィックス(例:/fr/about)へルーティングされるべき場合、ミドルウェアは適切なlocationおよびSet-Cookieヘッダーを含むリダイレクトレスポンスを返します。 - 内部リライト: ユーザーが
/fr/aboutにアクセスすると、URL は内部的にリライトされ、ルートハンドラーは/aboutにマッチします。一方、解決されたロケールはfrとして取得されます。 - ローカライズされた URL エイリアス:
intlayer.config.tsで定義された URL リライトルールを尊重します(例:/fr/aboutを/fr/a-proposにリライト)。
- リダイレクト: ユーザーが
- ロケールの解決: URL プレフィックス、永続化されたクッキー、カスタムヘッダー、または
Accept-Languageによるブラウザの設定に基づいてアクティブなロケールを検出します。 - コンテキストの注入:
IntlayerState(locale、defaultLocale、availableLocales)を、Intlayerキーおよびcontext.intlayerの下で Remix のRequestContextにアタッチします。- リクエストの残りの処理を
AsyncLocalStorageスコープ(requestStorage)内で実行し、ハンドラー、ビュー、コンポーネント内でuseIntlayer、useDictionary、useLocaleをすっきりと呼び出せるようにします。
- 永続化: 送信するロケールヘッダーとクッキーを最終的な HTTP レスポンスに付与し、ユーザーの設定を保持します。
パラメーター
intlayer 関数は、オプションの IntlayerMiddlewareOptions を受け取ります:
ts
コードをコピー
コードをクリップボードにコピー
コンテキストへの直接アクセス
フックを使用するほかに、解決された IntlayerState を Remix のリクエストコンテキストから直接取得することもできます:
ts
コードをコピー
コードをクリップボードにコピー
