2013-10-05 7 views
2

Мне нужно перевести (и переопределить для английского языка) «Учетная запись пользователя отключена». сообщение, когда пользователь пытается войти в систему с отключенной учетной записью пользователя.Перевод «Учетная запись пользователя отключена».

Я нашел это сообщение в https://github.com/symfony/symfony/blob/master/src/Symfony/Component/Security/Core/User/UserChecker.php

кажется, что это сообщение не является частью любого XLIFF или YML файла перевода. Означает ли это, что мы должны переопределить этот класс, чтобы изменить/перевести это сообщение?

Есть ли какое-нибудь более чистое решение?

Благодаря

ответ

4

неперехваченные исключения, как правило, оказываемые ExceptionController в TwigBundle, а затем визуализируется с использованием одного из шаблонов в TwigBundle/Resources/Resources/views/Exception в зависимости от запроса - скорее всего exception.html.twig.

В этом случае все исключения распространяются на AuthenticationException и поэтому в процессе аутентификации попадают на Symfony\Component\Security\Http\Firewall\ExceptionListener.

Исключение будет приводить к тому, что SecurityContext будет содержать ошибку аутентификации, которая будет (в примере FOSUserBundle) передаваться в вашу регистрационную форму как a variable called error. Затем эта переменная будет отображаться (и транслироваться с использованием транс-фильтра) в the login template.

Вы можете просто добавить новые переводы для этих сообщений в приложение/Ресурсы/переводы или приложение/Ресурсы/FOSUserBundle/translation или одно из других мест, на которые выполняется поиск по symfony (documentation) - убедитесь, что вы используете правый translation domain - это FOSUserBundle в случае, если вы используете комплект.

1

Спасибо @nifr за ваш ответ. Я был почти там, кроме случаев, когда я не принимал во внимание домен переводов. Он работает теперь, когда мой файл перевода был переименован из security.en.xlf в FOSUserBundle.en.xlf и содержит следующее:

<?xml version="1.0"?> 
<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2"> 
    <file source-language="en" datatype="plaintext" original="file.ext"> 
     <body> 
      <trans-unit id="1"> 
       <source>User account is disabled.</source> 
       <target>The actual error label I wanted...</target> 
      </trans-unit> 
     </body> 
    </file> 
</xliff> 
0

Ввод

'User account is disabled.': Ce compte n'est pas activé. 

в MyBundle/Ресурсы/переводы/безопасность .fr.yml работал для меня.

Смежные вопросы