在symfony2中翻译身份验证错误的推荐方法

时间:2012-01-14 22:34:58

标签: authentication internationalization symfony

我需要以其他语言显示“Bad credentials”消息。 到目前为止,我发现它作为例外被抛出 \vendor\symfony\src\Symfony\Component\Security\Core\Authentication\Provider\UserAuthenticationProvider.php
authenticate功能为
throw new BadCredentialsException('Bad credentials', 0, $notFound);

我想知道用另一种语言显示此消息的推荐方法是什么。只是改变这个地方的字符串似乎不是最佳的...... 此外,还有其他消息可能在身份验证期间显示。

我正在使用JMSSecurityExtraBundleFOSUserBundle,我猜可能会有一些内置功能来处理这个问题......?

1 个答案:

答案 0 :(得分:4)

  1. 覆盖登录模板:将 FOSUserBundle / Resources / views / Security / login.html.twig 复制到 app / Resources / views / Security / login.html.twig (请参阅docvideo

  2. 在login.html.twig中添加 trans 过滤器到错误变量(参见doc):

    {{error | trans}}

  3. 在您的翻译文件中 src / YourBundlePath / Resources / translations / messages。{locale} .yml add:

    凭据错误:您的错误文字