首頁 >後端開發 >php教程 >如何在 Laravel 中建立多語言路由?

如何在 Laravel 中建立多語言路由?

DDD
DDD原創
2024-11-03 21:22:29192瀏覽

How to Create Multilingual Routes in Laravel?

如何在Laravel 中建立多語言翻譯路由

簡介

翻譯路由對於建立多語言應用程式至關重要。在 Laravel 中,可以有多種語言並根據 URL 動態切換語言。本文介紹如何使用參考文章中概述的第一種方法在 Laravel 中實作多語言翻譯路由。

第1 步:翻譯路由

建立三個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 步:設定語言設定

第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>
列出替代語言:

列出替代語言:

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

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

列出替代語言:

列出替代語言:

<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>

定義語言環境前綴:

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

App::missing(function() {
   return Redirect::to(Config::get('app.locale_prefix'), 301);
});</code>
第3 步:定義路由模式在第3 步:定義路由模式在在app/ 中routes.php,根據語言翻譯設定路由模式:第4 步:按區域設定對路由建立一個前綴等於的路由群組到選定的語言環境:第5 步:處理重定向在app/start/global.php 中,為未知URL 建立301 重新導向到正確的位置語言:

以上是如何在 Laravel 中建立多語言路由?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn