ホームページ  >  記事  >  バックエンド開発  >  Laravelで多言語翻訳ルートを作成するには?

Laravelで多言語翻訳ルートを作成するには?

Barbara Streisand
Barbara Streisandオリジナル
2024-11-04 03:01:30155ブラウズ

How to Create Multilingual Translated Routes in Laravel?

Laravel での多言語翻訳ルートの作成

Laravel アプリケーションでは、選択した言語に依存する多言語ルートを作成して、ユーザーが-フレンドリーなナビゲーション エクスペリエンス。

ステップ 1: 言語ディレクトリと翻訳を構成する

app/lang の下に 3 つの個別の言語ディレクトリを作成します (例: pl、en、fr)。各ディレクトリで、翻訳されたルート名を含む Routes.php という名前のファイルを作成します。

<code class="php">// app/lang/pl/routes.php
return array(
    'contact' => 'kontakt',
    'about' => 'o-nas'
);</code>
<code class="php">// app/lang/en/routes.php
return array(
    'contact' => 'contact',
    'about' => 'about-us'
);</code>
<code class="php">// app/lang/fr/routes.php
return array(
    'contact' => 'contact-fr',
    'about' => 'about-fr'
);</code>

ステップ 2: 言語設定を構成する

app/config/app.php 内:

  • 「locale」をデフォルト言語 (例:「pl」) に設定します。
  • 「alt_langs」に代替言語のリストを含めます。 ' (例: ['en', 'fr'])。
  • デフォルトの言語プレフィックスとして 'locale_prefix' を空のままにします。
<code class="php">'locale' => 'pl',
'alt_langs' => ['en', 'fr'],
'locale_prefix' => '',</code>

ステップ 3:ルート パターンと言語依存グループを定義する

app/routes.php:

  • URL の最初のセグメントが代替言語と一致する場合、ロケールと locale_prefix を更新します.
  • 現在の言語翻訳に基づいてルート パターンを設定します。
  • 言語プレフィックスが適用されたルート グループを作成します。
<code class="php">if (in_array(Request::segment(1), Config::get('app.alt_langs'))) {

    App::setLocale(Request::segment(1));
    Config::set('app.locale_prefix', Request::segment(1));
}

foreach(Lang::get('routes') as $k => $v) {
    Route::pattern($k, $v);
}

Route::group(array('prefix' => Config::get('app.locale_prefix')), function() {

    Route::get('/', function () {
        return "main page - ".App::getLocale();
    });

    Route::get('/{contact}/', function () {
        return "contact page ".App::getLocale();
    });

    Route::get('/{about}/', function () {
        return "about page ".App::getLocale();
    });

});</code>

ステップ 4 : 不明な URL を処理します

app/start/global.php 内:

  • 不明な URL を 301 ステータス コードを持つ正しい言語プレフィックスにリダイレクトします:
<code class="php">App::missing(function() {
   return Redirect::to(Config::get('app.locale_prefix'), 301);
});</code>

これらの手順を実装すると、選択した言語に適応する動的ルートが作成され、複数の言語間でシームレスなユーザー エクスペリエンスが確保されます。

以上がLaravelで多言語翻訳ルートを作成するには?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。