我关注如何使您的网站成为多语言this article。
但是我不明白为什么当我冲浪到hoemstead.app/lang/en
时总是会出错。
错误:
抱歉,您要查找的页面不存在
我的语言控制器
use Config;
use Illuminate\Support\Facades\Redirect;
use Illuminate\Support\Facades\Session;
class LanguageController extends Controller
{
public function switchLang($lang)
{
if (array_key_exists($lang, Config::get('languages'))) {
Session::put('applocale', $lang);
}
return Redirect::back();
}
}
我的路线:
Route::get('lang/{lang}', ['as'=>'lang.switch', 'uses'=>'LanguageController@switchLang']);
我的语言中间件
use Closure;
use Illuminate\Support\Facades\App;
use Illuminate\Support\Facades\Config;
use Illuminate\Support\Facades\Session;
class Language
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
if (Session::has('applocale') AND array_key_exists(Session::get('applocale'), Config::get('languages'))) {
App::setLocale(Session::get('applocale'));
}
return $next($request);
}
}
我还将此中间件添加到我的Kernel.php文件
配置文件夹中的My Languages.php文件
return [
'en' => 'English',
'nl' => 'Nederlands',
'fr' => 'Français',
];