Ошибки проверки Laravel не переводятся, если локаль изменилась во время выполнения - PullRequest
0 голосов
/ 24 марта 2019

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

Может кто-нибудь указать, где я ошибаюсь.Спасибо.

1 Ответ

0 голосов
/ 25 марта 2019

Используете ли вы файлы JSON для переводов?Текстовые биты проверки / аутентификации размещаются в отдельных файлах.Выполните проверку подпапки resources> lang .Внутри подпапки lang вы можете создавать другие дополнительные подпапки, такие как «en» или «es», или для любого другого языка, который вам нужен.

...