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

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

DDD
DDDオリジナル
2024-11-03 21:22:29139ブラウズ

How to Create Multilingual Routes in Laravel?

Laravel で多言語翻訳ルートを作成する方法

はじめに

ルートの翻訳は、多言語アプリケーションを作成するために不可欠です。 Laravel では、複数の言語を使用し、URL に基づいて言語を動的に切り替えることができます。この記事では、参考記事で概説されている最初の方法を使用して、Laravel で多言語に翻訳されたルートを実装する方法について説明します。

ステップ 1: ルートを翻訳する

3 つの Routes.php ファイルを作成する各言語の app/lang ディレクトリ (pl/routes.php、en/routes.php、fr/routes.php など)。各ファイル内でルート名を翻訳します:

  • ポーランド語:
<code class="php"><?php
// app/lang/pl/routes.php

return array(

    'contact' => 'kontakt',
    'about' => 'o-nas'
);</code>
  • 英語:
<code class="php"><?php
// app/lang/en/routes.php

return array(
    'contact' => 'contact',
    'about' => 'about-us'
);</code>
  • フランス語:
<code class="php"><?php
// app/lang/fr/routes.php

return array(
    'contact' => 'contact-fr',
    'about' => 'about-fr'
);</code>

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

app/config/app.php ファイルを更新します:

  • 主言語を設定します:
<code class="php">'locale' => 'pl',</code>
  • 代替言語をリストします:
<code class="php">'alt_langs' => array('en', 'fr'),</code>
  • ロケール プレフィックスを定義します:
<code class="php">'locale_prefix' => '',</code>

ステップ 3: ルート パターンを定義する

アプリ内/ Routes.php、言語翻訳に基づいてルート パターンを設定します:

<code class="php"><?php
// app/routes.php

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

ステップ 4: ロケールごとにルートをグループ化する

次のプレフィックスを持つルート グループを作成する選択したロケールへ:

<code class="php"><?php
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>

ステップ 5: リダイレクトの処理

app/start/global.php で、不明な URL から正しい URL への 301 リダイレクトを作成します。言語:

<code class="php"><?php
// app/start/global.php

App::missing(function() {
   return Redirect::to(Config::get('app.locale_prefix'), 301);
});</code>

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

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