Перевести сообщение об ошибке формы входа - PullRequest
1 голос
/ 13 декабря 2011

Я использую форму авторизации FOSUserBundle и хочу переводить сообщения об ошибках.Эти сообщения запускаются здесь: vendor / symfony / src / Symfony / Component / Security / Core / Аутентификация / Поставщик / DaoAuthenticationProvider.php

protected function checkAuthentication(UserInterface $user, UsernamePasswordToken $token)
    {
        $currentUser = $token->getUser();
        if ($currentUser instanceof UserInterface) {
            if ($currentUser->getPassword() !== $user->getPassword()) {
                throw new BadCredentialsException('The credentials were changed from another session.');
            }
        } else {
            if (!$presentedPassword = $token->getCredentials()) {
                throw new BadCredentialsException('The presented password cannot be empty.');
            }

            if (!$this->encoderFactory->getEncoder($user)->isPasswordValid($user->getPassword(), $presentedPassword, $user->getSalt())) {
                throw new BadCredentialsException('The presented password is invalid.');
            }
        }
    }

Я написал приложение/Resources/translations/validators.fr.yml

"The presented password cannot be empty.":      "Veuillez saisir un mot de passe."

Я написал app / Resources / translations / messages.fr.yml

"The presented password cannot be empty.":      "Veuillez saisir un mot de passe."

Но это не работает.Другие переводы работают (=> fr), но у меня проблема с этими сообщениями.

Специальная процедура для этих сообщений?

Ответы [ 3 ]

7 голосов
/ 19 декабря 2011

В файле Sonata / UserBundle / Resources / views / Admin / Security / login.html.twig У вас есть:

<div class="alert-message error">{{ error|trans({}, 'SonataUserBundle') }}</div>

, поэтому вы должны изменить SonataUserBundle на любой используемый вами файл перевода или добавить src /Ваш / Bundle / Ресурсы / переводы / SonataUserBundle. {Locale} .yml

и внутри файла перевода:

'Bad credentials': 'Your translation'
'The presented password is invalid.': 'Your translation'
'The presented password cannot be empty.': 'Your translation'

Надеюсь, это достаточно ясно;]

2 голосов
/ 05 декабря 2014

В версии 1.3 FOSUserBundle «Bad Credentials» это фактически «Bad Credentials». (обратите внимание на последнюю точку).

0 голосов
/ 14 декабря 2011

Я так не думаю.Вы должны уловить ошибку и сделать то, что вам нужно сделать ... Например, отобразить сообщение с сообщением о сеансе flash и перенаправить на страницу забытого пароля.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...