我们正在尝试路由到不同的语言,但是效果不佳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();
});
不是真的工作。因此,我们尝试了许多其他事情,但无法正确解决。任何想法如何解决这个问题?也许是最佳做法?
答案 0 :(得分:0)
App::setLocale($locale)
仅会更改当前请求的语言环境,并且在会话中设置语言环境不会更改Laravel使用的语言环境。
如果您要使用在会话中设置的语言环境,则可以向网站添加middleware,以从会话中获取语言环境,并使用App::setLocale()
将其设置为当前请求的语言环境