このページとあなたの好きなAIアシスタントを使ってドキュメントを要約します
このページのコンテンツはAIを使用して翻訳されました。
英語の元のコンテンツの最新バージョンを見るこのドキュメントを改善するアイデアがある場合は、GitHubでプルリクエストを送信することで自由に貢献してください。
ドキュメントへのGitHubリンクドキュメントのMarkdownをクリップボードにコピー
ドキュメント: intlayer の getLocalizedUrl 関数
説明
getLocalizedUrl 関数は、指定されたロケールを与えられた URL の前に付加することでローカライズされた URL を生成します。絶対 URL と相対 URL の両方を処理し、設定に基づいて正しいロケールのプレフィックスが適用されることを保証します。
主な機能:
- 必須パラメータは
urlとcurrentLocaleの2つのみ locales、defaultLocale、modeを含むオプションのoptionsオブジェクト- プロジェクトの国際化設定をデフォルトとして使用
- シンプルなケースでは最小限のパラメータで使用でき、複雑なシナリオでは完全にカスタマイズ可能
- 複数のルーティングモードをサポート:
prefix-no-default、prefix-all、no-prefix、search-params
関数署名
コードをクリップボードにコピー
パラメータ
必須パラメータ
url: string- Description: ロケールをプレフィックスとして付与する元のURL文字列。
- Type:
string - Required: Yes
currentLocale: Locales- Description: URLがローカライズされている現在のロケール。
- Type:
Locales - Required: Yes
オプションパラメータ
options?: object- Description: URL ローカライゼーション動作の設定オブジェクト。
- Type:
object Required: No (Optional)
options.locales?: Locales[]- Description: サポートされているロケールの配列。指定されない場合、プロジェクト設定から設定されたロケールを使用します。
- Type:
Locales[] - Default:
プロジェクト設定
options.defaultLocale?: Locales- Description: アプリケーションのデフォルトロケール。指定されない場合、プロジェクト設定から設定されたデフォルトロケールを使用します。
- Type:
Locales - Default:
プロジェクト設定
options.mode?: 'prefix-no-default' | 'prefix-all' | 'no-prefix' | 'search-params'- Description: ロケール処理のための URL ルーティングモード。指定されない場合、プロジェクト設定から設定されたモードを使用します。
- Type:
'prefix-no-default' | 'prefix-all' | 'no-prefix' | 'search-params' - Default:
プロジェクト設定 - Modes:
prefix-no-default: デフォルトロケールにはプレフィックスなし、その他すべてにプレフィックスありprefix-all: すべてのロケール(デフォルトを含む)にプレフィックスありno-prefix: URL にロケールプレフィックスなしsearch-params: ロケールのクエリパラメータを使用(例:?locale=fr)
戻り値
- 型:
string - 説明: 指定されたロケールに対応するローカライズされた URL。
使用例
基本的な使用方法(必須パラメータのみ)
プロジェクトを国際化設定で構成した後、必須パラメータだけで関数を使用できます:
コードをクリップボードにコピー
import { getLocalizedUrl, Locales } from "intlayer";
// プロジェクトの設定(locales、defaultLocale、mode)を使用します
getLocalizedUrl("/about", Locales.FRENCH);
// 出力: "/fr/about" (フランス語がサポートされており、modeが'prefix-no-default'の場合)
getLocalizedUrl("/about", Locales.ENGLISH);
// 出力: "/about" または "/en/about" (modeの設定に応じて異なります)
Advanced Usage (With Optional Parameters)
オプションの options パラメーターを提供することで、デフォルト設定をオーバーライドできます:
相対 URL
コードをクリップボードにコピー
import { getLocalizedUrl, Locales } from "intlayer";
getLocalizedUrl(
"/about",
Locales.FRENCH,
[Locales.ENGLISH, Locales.FRENCH],
Locales.ENGLISH,
false
);
// 出力: フランス語ロケールの場合 "/fr/about"
// 出力: デフォルト(英語)ロケールの場合 "/about"
部分的な設定のオーバーライド
オプションパラメータの一部のみを指定することもできます。指定しないパラメータについては、関数はプロジェクト設定を使用します:
コードをクリップボードにコピー
絶対URL
コードをクリップボードにコピー
サポートされていないロケール
コードをクリップボードにコピー
エッジケース
ロケールセグメントがない場合:
- URLにロケールセグメントが含まれていない場合、関数は適切なロケールを安全にプレフィックスします。
デフォルトロケール:
prefixDefaultがfalseの場合、関数はデフォルトロケールのURLにプレフィックスを付けません。
サポートされていないロケール:
localesにリストされていないロケールには、関数はプレフィックスを適用しません。
ルーティングモード:
'prefix-no-default': デフォルトロケールにはプレフィックスがなく、他のロケールにはある (例:/about,/fr/about)'prefix-all': すべてのロケールにプレフィックスがある (例:/en/about,/fr/about)'no-prefix': URLにロケールプレフィックスがない (ロケールは他の場所で処理される)'search-params': ロケールはクエリパラメータで指定される (例:/about?locale=fr)
アプリケーションでの使用方法
多言語対応アプリケーションでは、locales と defaultLocale を使用して国際化設定を構成することが、正しい言語を表示するために非常に重要です。以下は、getLocalizedUrl をアプリケーションのセットアップでどのように使用できるかの例です。
コードをクリップボードにコピー
import { Locales, type IntlayerConfig } from "intlayer";
// サポートされているロケールとデフォルトロケールの設定
export default {
internationalization: {
locales: [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH],
defaultLocale: Locales.ENGLISH,
},
} satisfies IntlayerConfig;
export default config;
上記の設定により、アプリケーションは ENGLISH、FRENCH、SPANISH をサポート言語として認識し、フォールバック言語として ENGLISH を使用します。
この設定を使用すると、getLocalizedUrl 関数はユーザーの言語設定に基づいて動的にローカライズされたURLを生成できます:
コードをクリップボードにコピー
getLocalizedUrl を統合することで、開発者は複数言語にわたって一貫したURL構造を維持でき、ユーザー体験とSEOの両方を向上させることができます。
