【问题标题】:Laravel localization for custom error pages自定义错误页面的 Laravel 本地化
【发布时间】:2022-11-17 15:32:14
【问题描述】:
我有自定义错误页面,例如resources/views/errors/404.blade.php 一切正常,但本地化不适用于错误页面。如果我更改网站语言,错误页面仍以默认语言显示,我尝试了很多方法,但它不起作用,任何人都可以帮助我完成这项工作,在此先感谢。
我尝试通过异常处理程序使其工作,但不知道该怎么做。我可以应用语言中间件是有人可以告诉我错误页面的默认路由在哪里。
【问题讨论】:
标签:
laravel
exception
localization
handler
【解决方案1】:
您也可以重定向到AppExceptionsHandler.php 中的其他页面。您也可以使用App::setLocale() 进行分配。像这样:
public function render($request, Throwable $exception)
{
App::setLocale('en_GB');
/** @var SymfonyComponentHttpKernelThrowable $e */
$e = $exception;
$statusCode = $e->getStatusCode();
return $this->isHttpException($exception) && $statusCode == 404 ?
response()->view('frontend.pages.404') :
parent::render($request, $exception);
}
【解决方案2】:
打开 app/exceptions/handler.php
在这里找到渲染函数粘贴
不要为了导入这个特性
use SymfonyComponentHttpKernelExceptionNotFoundHttpException;
public function render($request, Exception $e)
{
if($e instanceof NotFoundHttpException)
{
if(Request::hasCookie('language')) {
$cookie = Request::cookie('language');
app()->setLocale($cookie);
//.... etc
}
}
return parent::render($request, $e);
}