Intlayerの今後のリリースに関する通知を受け取る
    作成:2025-11-16最終更新:2025-11-16

    ドキュメント: intlayergetPrefix 関数

    説明

    getPrefix 関数は、ルーティングモードの設定に基づいて指定されたロケールのURLプレフィックスを決定します。ロケールとデフォルトロケールを比較し、柔軟なURL構築のために3つの異なるプレフィックス形式を含むオブジェクトを返します。

    主な特徴:

    • 最初のパラメータとしてロケールを受け取る(必須)
    • defaultLocalemode を含むオプションの options オブジェクト
    • prefixlocalePrefix プロパティを持つオブジェクトを返す
    • すべてのルーティングモードをサポート:prefix-no-defaultprefix-allno-prefix、および search-params
    • ロケールプレフィックスを追加するタイミングを判断する軽量ユーティリティ

    関数シグネチャ

    getPrefix(  locale: Locales,               // 必須  options?: {                    // オプション    defaultLocale?: Locales;    mode?: 'prefix-no-default' | 'prefix-all' | 'no-prefix' | 'search-params';  }): GetPrefixResulttype GetPrefixResult = {  prefix: string;   // 例: 'fr/' または ''  localePrefix?: Locale; // 例: 'fr' または undefined}

    パラメータ

    • locale: Locales

      • 説明: プレフィックスを生成する対象のロケール。値が偽(undefined、null、空文字列)の場合、関数は空文字列を返します。
      • : Locales
      • 必須: はい
    • options?: object

      • 説明: プレフィックス判定のための設定オブジェクト。
      • : object
      • 必須: いいえ(オプション)

      • options.defaultLocale?: Locales

        • 説明: アプリケーションのデフォルトロケール。指定がない場合は、プロジェクト設定で構成されたデフォルトロケールを使用します。
        • : Locales
        • デフォルト: プロジェクト設定
      • options.mode?: 'prefix-no-default' | 'prefix-all' | 'no-prefix' | 'search-params'

    • 説明: ロケール処理のためのURLルーティングモード。指定しない場合は、プロジェクト設定で構成されたモードが使用されます。
    • : 'prefix-no-default' | 'prefix-all' | 'no-prefix' | 'search-params'
    • デフォルト: プロジェクト設定
    • モード:
      • prefix-no-default: ロケールがデフォルトロケールと一致する場合、空文字列を返します
      • prefix-all: デフォルトを含むすべてのロケールに対してプレフィックスを返します
      • no-prefix: 空文字列を返します(URLにプレフィックスなし)
      • search-params: 空文字列を返します(クエリパラメータにロケールを含む)

    戻り値

    • : GetPrefixResult
    • 説明: 3つの異なるプレフィックス形式を含むオブジェクト:
      • prefix: 後続のスラッシュを含むパスのプレフィックス(例: 'fr/', ''
      • localePrefix: スラッシュなしのロケール識別子(例: 'fr', undefined

    使用例

    基本的な使用法

    import { getPrefix, Locales } from "intlayer";// 英語ロケールのプレフィックスをチェックgetPrefix(Locales.ENGLISH, {  defaultLocale: Locales.ENGLISH,  mode: "prefix-all",});// 戻り値: { prefix: 'en/', localePrefix: 'en' }// フランス語ロケールのプレフィックスをチェックgetPrefix(Locales.FRENCH, {  defaultLocale: Locales.ENGLISH,  mode: "prefix-no-default",});// 戻り値: { prefix: 'fr/', localePrefix: 'fr' }

    異なるルーティングモード

    import { getPrefix, Locales } from "intlayer";// prefix-all: 常にプレフィックスを返すgetPrefix(Locales.ENGLISH, {  mode: "prefix-all",  defaultLocale: Locales.ENGLISH,});// 戻り値: { prefix: '/en', localePrefix: 'en' }// prefix-no-default: ロケールがデフォルトと一致する場合はプレフィックスなしgetPrefix(Locales.ENGLISH, {  mode: "prefix-no-default",  defaultLocale: Locales.ENGLISH,});// 戻り値: { prefix: '', localePrefix: undefined }javascript;// prefix-no-default: ロケールがデフォルトと異なる場合にプレフィックスを返すgetPrefix(Locales.FRENCH, {  mode: "prefix-no-default",  defaultLocale: Locales.ENGLISH,});// 戻り値: { prefix: 'fr/', localePrefix: 'fr' }// no-prefix と search-params: プレフィックスを返さないgetPrefix(Locales.ENGLISH, { mode: "no-prefix" });// 戻り値: { prefix: '', localePrefix: undefined }getPrefix(Locales.ENGLISH, { mode: "search-params" });// 戻り値: { prefix: '', localePrefix: undefined }

    実用例

    import { getPrefix, Locales } from "intlayer";// 特定のロケールに適したプレフィックスでURLを構築するconst locale = Locales.FRENCH;const { prefix, localePrefix } = getPrefix(locale, {  defaultLocale: Locales.ENGLISH,  mode: "prefix-no-default",});// パス構築にprefixを使用const url1 = `/${prefix}about`.replace(/\/+/g, "/");// 結果: "/fr/about"// locale識別にlocalePrefixを使用console.log(`現在のロケール: ${localePrefix}`);// 出力: "現在のロケール: fr"

    関連関数


    TypeScript

    type GetPrefixResult = {  prefix: string; // 末尾にスラッシュが付いたパスのプレフィックス(例: 'fr/' または '')  localePrefix?: Locale; // スラッシュなしのロケール識別子(例: 'fr' または undefined)};function getPrefix(  locale: Locales,  options?: {    defaultLocale?: Locales;    mode?: "prefix-no-default" | "prefix-all" | "no-prefix" | "search-params";  }): GetPrefixResult;
    Intlayerの今後のリリースに関する通知を受け取る