简介
翻译路由对于创建多语言应用程序至关重要。在 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 步:配置语言设置
更新 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 步:定义路由模式
在 app/ 中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 创建 301 重定向到正确的位置语言:
<code class="php"><?php // app/start/global.php App::missing(function() { return Redirect::to(Config::get('app.locale_prefix'), 301); });</code>
以上是如何在 Laravel 中创建多语言路由?的详细内容。更多信息请关注PHP中文网其他相关文章!