我尝试使用 laravel 进行本地化,但我的代码不起作用,有什么意见或建议吗?
这是代码
我的语言中间件:
public function handle($request, Closure $next)
{
if(Session::has('locale')) {
$locale = Session::get('locale',Config::set('app.locale'));
} else {
$locale = "bg";
}
App::setLocale($locale);
return $next($request);
}
我的 Controller :
public function changeLang(Request $request,$lang) {
if (!empty($request)) {
Session::put('locale',$lang);
} else {
Session::set('locale',$lang);
}
return back();
}
还有我的路线 Route::get('/{lang}','LanguageController@changeLang');
我做错了什么?
最佳答案
希望此代码对您有用。
Controller
public function index($locale)
{
session(['locale' => $locale]);
App::setLocale($locale);
return Redirect::back();
}
语言中间件:
public function handle($request, Closure $next)
{
if (Session::has('locale')) {
App::setLocale(Session::get('locale'));
}
else { // This is optional as Laravel will automatically set the fallback language if there is none specified
App::setLocale(Config::get('app.fallback_locale'));
}
return $next($request);
}
路线:
Route::get('/{lang}', 'LanguageController@index');
最后在 middlewaregroup 的 app/Http/Kernal.php 添加你的 Langauge 中间件
\App\Http\Middleware\Language::class,
关于php - Laravel 本地化不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51320028/