我正在学习多地点旅馆laravel 5.4 所以 我创建了两个文件 资源中的第一个/ lang / es / greeting.php
<?php
return [
'hello' => 'hola',
];
资源中的和第二/ lang / en / greeting.php
<?php
return [
'hello' => 'hola',
];
我在web.php
中创建了这条路线Route::get('/{locale}', function ($locale) {
App::setLocale($locale);
return view('index');
});
所以当我请求此链接时(localhost:8000 / es) 有用 但是当我刷新页面时,它返回到默认语言环境,即en
我想让它留在新的语言环境中 所以请帮帮我
答案 0 :(得分:2)
如果要为该会话永久设置区域设置,请将路由代码更改为:
Route::get('/{locale}', function ($locale) {
App::setLocale($locale);
Session::put('locale', $locale);
return view('index');
});
然后添加一个中间件来检查会话是否具有区域设置,如果是这样,则设置区域设置如下:
public function handle($request, Closure $next) {
if(Session::has('locale')) {
app()->setLocale(Session::get('locale'));
}
return $next($request);
}