Laravel 5多语言站点,网址中包含语言前缀

时间:2016-02-23 09:43:46

标签: php laravel-5 routes

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

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));
    });
});

它有效,但是如果我想设置一个默认语言并且像 mysite / language 那样访问网址 - 它就不会工作。

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

1 个答案:

答案 0 :(得分:2)

经过一番研究,我发现了这个美丽的本地化课程mcamara/laravel-localization。安装完成后,我的代码现在看起来像这样,而且一切正常 - 魔术!!

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