このページとあなたの好きなAIアシスタントを使ってドキュメントを要約します
バージョン履歴
- "履歴の初期化"v5.5.102025/6/29
このページのコンテンツはAIを使用して翻訳されました。
英語の元のコンテンツの最新バージョンを見るこのドキュメントを改善するアイデアがある場合は、GitHubでプルリクエストを送信することで自由に貢献してください。
ドキュメントへのGitHubリンクドキュメントのMarkdownをクリップボードにコピー
ドキュメント: hono-intlayer における t 関数
hono-intlayer パッケージの t 関数は、Hono アプリケーションでローカライズされたレスポンスを提供するためのコア ユーティリティです。ユーザーの優先言語に基づいてコンテンツを動的に選択することで、国際化 (i18n) を簡素化します。
概要
t 関数は、特定の言語セットに対する翻訳を定義し、取得するために使用されます。Accept-Language ヘッダーなどのクライアントのリクエスト設定に基づいて、返すべき適切な言語を自動的に決定します。優先言語が利用できない場合は、設定で指定されたデフォルトのロケールに適切にフォールバックします。
主な機能
- 動的なローカリゼーション: クライアントにとって最も適切な翻訳を自動的に選択します。
- デフォルト ロケールへのフォールバック: クライアントの優先言語が利用できない場合、デフォルトのロケールにフォールバックし、ユーザー エクスペリエンスの継続性を確保します。
- 軽量で高速: 高パフォーマンスなアプリケーション向けに設計されており、オーバーヘッドを最小限に抑えます。
- 厳格モードのサポート: 信頼性の高い動作のために、宣言されたロケールの厳守を強制します。
関数のシグネチャ
パラメータ
translations: キーがロケール コード (例:en、fr、ja) で、値が対応する翻訳文字列であるオブジェクト。
戻り値
- クライアントの優先言語でのコンテンツを表す文字列。
国際化リクエスト ハンドラのロード
hono-intlayer が提供する国際化機能が正しく動作するようにするには、Hono アプリケーションの最初に国際化ミドルウェアをロードする必要があります。これにより t 関数が有効になり、ロケール検出と翻訳が適切に処理されます。
アプリケーションのすべてのルートの前に app.use("*", intlayer()) ミドルウェアを配置し、すべてのルートが国際化の恩恵を受けられるようにしてください。
これが必要な理由
- ロケール検出:
intlayerミドルウェアは、ヘッダー、クッキー、またはその他の構成された方法に基づいてユーザーの優先ロケールを検出するために、着信リクエストを処理します。 - 翻訳コンテキスト:
t関数が正しく動作するために必要なコンテキストを設定し、翻訳が正しい言語で返されるようにします。 - エラー防止: このミドルウェアがないと、必要なロケール情報が利用できないため、
t関数を使用するとランタイム エラーが発生します。
使用例
基本的な例
異なる言語でローカライズされたコンテンツを提供します。
クライアント リクエスト:
Accept-Language: frのクライアントはBienvenue!を受け取ります。Accept-Language: jaのクライアントはようこそ!を受け取ります。Accept-Language: deのクライアントはWelcome!(デフォルト ロケール) を受け取ります。
エラー処理
複数の言語でエラー メッセージを提供します。
ロケール バリアントの使用
ロケール固有のバリアントに対する翻訳を指定します。
高度なトピック
フォールバック メカニズム
優先ロケールが利用できない場合、t 関数は設定で定義されたデフォルト ロケールにフォールバックします。
厳格モードの強制
宣言されたロケールの厳守を強制するように t 関数を構成します。
テーブルをモーダルで開き、すべてのデータを明確に表示
| モード | 動作 |
|---|---|
strict | 宣言されたすべてのロケールに翻訳を提供する必要があります。不足している場合はエラーをスローします。 |
inclusive | 宣言されたロケールには翻訳が必要です。不足している場合は警告を発しますが、受け入れられます。 |
loose | 宣言されていなくても、既存のロケールはすべて受け入れられます。 |
TypeScript の統合
TypeScript と一緒に使用すると、t 関数は型安全になります。型安全な翻訳オブジェクトを定義します。
よくあるエラーとトラブルシューティング
テーブルをモーダルで開き、すべてのデータを明確に表示
| 問題 | 原因 | 解決策 |
|---|---|---|
t 関数が動作しない | ミドルウェアがロードされていない | ルートの前に app.use("*", intlayer()) が追加されていることを確認してください。 |
| 翻訳不足エラー | すべてのロケールなしで厳格モードが有効 | 必要なすべての翻訳を提供してください。 |
結論
t 関数は、バックエンドの国際化のための強力なツールです。これを効果的に使用することで、グローバルな視聴者にとってより包括的でユーザーフレンドリーなアプリケーションを作成できます。高度な使用法と詳細な構成オプションについては、ドキュメントを参照してください。