我正在使用Laravel文档来实现本地化(在网址中没有前缀)。
基本上我想要两个链接“EN”和“NL”。根据我单击的链接,应将语言环境更改为该特定语言。
我使用这个链接:
<a href="/language/benl">NL</a>
<a href="/language/en">EN</a>
这条路线:
Route::get('language/{locale}', 'HomeController@setLang');
这是我的HomeController
:
class HomeController extends Controller
{
public function setLang($locale){
App::setLocale($locale);
return back();
}
}
我按照文档中解释的方式将文件设置为resources/lang
。
但是,输出({{ trans('messages.welcome') }}
)未翻译。
我做错了什么? :)
更新
<a href="/auth/register">{{ trans('header.register') }}</a>
路线
Route::group(['middleware' => ['language']], function () {
//
Route::get('language/{locale}', 'HomeController@setLang');
});
Lang文件:
return [
'register' => 'REGISTREER',
];
My Kernel.php
protected $routeMiddleware = [
'auth' => \App\Http\Middleware\Authenticate::class,
'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
'language' => \App\Http\Middleware\Language::class,
];
答案 0 :(得分:2)
如果您不想为网址添加前缀,可以将$(newhtml).insertAfter(".cl");
与session
结合使用。
您只需middleware
和middleware
。
controller
class HomeController extends Controller
{
public function setLang($locale)
{
// 1. store selected locale
Session::put('my_project.locale', $locale);
return back();
}
}
不要忘记全球register the middleware 。