Laravel 5.5本地化路线

时间:2019-01-28 13:36:16

标签: laravel laravel-5 routing laravel-5.5

我们正在尝试路由到不同的语言,但是效果不佳c   紧急地。我们使用语言文件夹。

我们目前有: example.com/hotelA(如果有人访问它,它将根据IP自动更改语言)。

现在,我们希望所有语言都有直接链接:

  • example.com/**en**/hotelA/
  • example.com/**tr**/hotelA/

我们这样解决了页面按钮中的切换器:

Route::get('language/{locale}', function ($locale)
{
    App::setLocale($locale);
    Session::put('locale',$locale);
    Session::put('custlocale',$locale);

    return back();
});

但这仅在某些触发按钮时有效。 因此我们尝试:

Route::get('/{locale}/{slug}/', 'frontEnd\HotelController@showHotel'), function ($locale)
{
    App::setLocale($locale);
    Session::put('locale',$locale);
    Session::put('custlocale',$locale);

    return back();
});

不是真的工作。因此,我们尝试了许多其他事情,但无法正确解决。任何想法如何解决这个问题?也许是最佳做法?

1 个答案:

答案 0 :(得分:0)

App::setLocale($locale)仅会更改当前请求的语言环境,并且在会话中设置语言环境不会更改Laravel使用的语言环境。

如果您要使用在会话中设置的语言环境,则可以向网站添加middleware,以从会话中获取语言环境,并使用App::setLocale()将其设置为当前请求的语言环境