Laravel 5 多语言网站,网址中带有语言前缀

Posted

技术标签:

【中文标题】Laravel 5 多语言网站,网址中带有语言前缀【英文标题】:Laravel 5 multi language site with language prefix in the url 【发布时间】:2016-06-05 01:51:01 【问题描述】:

所以我需要在网站上使用多种语言,网址如下:

mysite/en/language
mysite/it/language
mysite/es/language

我决定在我的路线中使用前缀,如下所示:

$allLanguages = ["en", "it", "es"];

$lng = ( in_array( Request::segment(1), $allLanguages) ) ? Request::segment(1) : "";

Route::group(['prefix' => $lng ], function () 
    Route::get('language', function ()    
        dd("The language is: " . Request::segment(1));
    );
);

它可以工作,但如果我想设置默认语言并像这样访问 url mysite/language - 它就行不通了。

你的想法是什么?这是处理多语言网站的最佳方式吗?访问不带前缀的网站(默认语言显示页面)时如何解决问题?

【问题讨论】:

查看***.com/questions/25082154/… 【参考方案1】:

经过一番研究,我发现了这个漂亮的本地化课程mcamara/laravel-localization。安装后,我的代码现在看起来像这样,一切正常 - 神奇!!

Route::group(['prefix' => LaravelLocalization::setLocale() ], function () 
    Route::get('language', function ()    
        dd("The language is: " . LaravelLocalization::getCurrentLocale());
    );
);

【讨论】:

以上是关于Laravel 5 多语言网站,网址中带有语言前缀的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 多语言站点和路线

Nuxt + Laravel 上的多语言站点,带有来自后端的语言环境

使用/ Laravel多语言在Google上定位良好?

如何为laravel中的所有路由添加默认参数

使用 Laravel 进行多语言数据库管理

Pimcore 多语言站点静态路由