作成:2026-08-24最終更新:2026-08-24
このドキュメントをあなたの好きなAIアシスタントに参照してくださいChatGPTClaudeDeepSeekGoogle AI modeGeminiPerplexityMistralGrok
このページとあなたの好きなAIアシスタントを使ってドキュメントを要約します
バージョン履歴
- "ドキュメントの初期化"v9.4.02026/8/24
このページのコンテンツはAIを使用して翻訳されました。
英語の元のコンテンツの最新バージョンを見るこのドキュメントを編集
このドキュメントを改善するアイデアがある場合は、GitHubでプルリクエストを送信することで自由に貢献してください。
ドキュメントへのGitHubリンクコピー
ドキュメントのMarkdownをクリップボードにコピー
intlayer Elysia プラグインドキュメント
Elysia 用の intlayer プラグインは、ユーザーのロケールを検出し、ルートコンテキストに intlayer オブジェクトを注入します。また、リクエストコンテキスト内でグローバルな翻訳関数を使用できるようにします。
使用方法
ts
コードをコピー
コードをクリップボードにコピー
同じヘルパーはスタンドアロンのエクスポートとしても利用できるため、ルートコンテキストを分割代入せずに呼び出せます:
ts
コードをコピー
コードをクリップボードにコピー
説明
プラグインは次のタスクを実行します:
- ロケール検出: クライアントが明示的に設定したロケールをストレージ(クッキー、ヘッダー)から読み取り、その後
Accept-Languageヘッダーからネゴシエートされたロケールにフォールバックします。 - コンテキストへの注入: Elysia のルートコンテキストに
intlayerプロパティを追加します。含まれるもの:locale: このリクエストで使用するロケール。locale_storageがlocale_detectedより優先されます。locale_storage: クッキーまたはヘッダーを通じてクライアントが明示的に要求したロケール。locale_detected: リクエストヘッダーからネゴシエートされたロケール。defaultLocale:intlayer.config.tsでフォールバックとして設定されたロケール。t: 翻訳関数。getIntlayer: キーで辞書を取得する関数。getDictionary: 辞書オブジェクトを処理する関数。
- コンテキスト管理: 非同期コンテキストを管理するために
AsyncLocalStorageを使用し、グローバルな Intlayer 関数(t、getIntlayer、getDictionary)がコンテキストオブジェクトを渡さずにリクエスト固有のロケールにアクセスできるようにします。
Node ベースの Intlayer プラグインとは異なり、elysia-intlayerはcls-hookedではなくAsyncLocalStorageに依存します。cls-hookedは Bun が実装していないasync_hooks.createHookに依存しているためです。
リクエストコンテキストはレスポンスがマップされた時点で解放されるため、スタンドアロンのヘルパーが既に終了したリクエストに対して解決されることはありません。プラグインが処理するリクエストの外部で呼び出された場合は、設定されたデフォルトロケールにフォールバックします。
設定
プラグインは intlayer.config.ts ファイルを読み取ります。ロケール検出に使用するクッキーとヘッダーをカスタマイズできます:
intlayer.config.ts
コードをコピー
コードをクリップボードにコピー
import { Locales, type IntlayerConfig } from "intlayer";
const config: IntlayerConfig = {
internationalization: {
locales: [Locales.ENGLISH, Locales.FRENCH],
defaultLocale: Locales.ENGLISH,
},
routing: {
storage: [
{ type: "header", name: "my-locale-header" },
{ type: "cookie", name: "my-locale-cookie" },
],
},
};
export default config;
設定に関する詳細は、設定ドキュメントをご覧ください。
