我的Laravel应用已将locale
默认设置为英语(在config/app.php
中)。有一个中间件可以检查每个请求并根据用户偏好设置区域设置。
下面是中间件代码
public function handle($request, Closure $next)
{
$langs=['en', 'ar'];
$appLang=app()->getLocale();
if (request()->has('lang')) {
$requestLang=request()->get('lang');
if ($requestLang != $appLang && in_array($requestLang, $langs)) {
app()->setLocale($requestLang);
}
} else {
request()->merge(['lang' => $appLang]);
}
return $next($request);
}
语言环境是根据url参数lang设置的,例如。 http://localhost:8000/admin/departments?lang=ar
一切正常,除了验证错误。当区域设置设置为“ ar”(用config/app.php
硬编码)时,无论中间件是否设置了区域设置,它都会显示已翻译的错误。但是,如果语言环境是由中间件设置的,则视图会被翻译,但是验证错误仍然是英语。
有人可以指出我要去哪里了。谢谢。
答案 0 :(得分:0)
您是否使用json文件进行翻译?验证/身份验证文本位放在单独的文件中。检查 resources> lang 子文件夹。在lang子文件夹中,您可以创建其他其他子文件夹,例如“ en”或“ es”,或针对您想要的任何其他语言。