В приложении 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
, оно показывает переведенные ошибки независимо от того, какой языковой стандарт установлен промежуточным программным обеспечением.Но если языковой стандарт устанавливается промежуточным программным обеспечением, представления переводятся, но ошибки проверки остаются английскими.
Может кто-нибудь указать, где я ошибаюсь.Спасибо.