我需要以其他语言显示“Bad credentials”消息。
到目前为止,我发现它作为例外被抛出
\vendor\symfony\src\Symfony\Component\Security\Core\Authentication\Provider\UserAuthenticationProvider.php
authenticate
功能为
throw new BadCredentialsException('Bad credentials', 0, $notFound);
我想知道用另一种语言显示此消息的推荐方法是什么。只是改变这个地方的字符串似乎不是最佳的...... 此外,还有其他消息可能在身份验证期间显示。
我正在使用JMSSecurityExtraBundle
和FOSUserBundle
,我猜可能会有一些内置功能来处理这个问题......?
答案 0 :(得分:4)
覆盖登录模板:将 FOSUserBundle / Resources / views / Security / login.html.twig 复制到 app / Resources / views / Security / login.html.twig (请参阅doc,video)
在login.html.twig中添加 trans 过滤器到错误变量(参见doc):
{{error | trans}}
在您的翻译文件中 src / YourBundlePath / Resources / translations / messages。{locale} .yml add:
凭据错误:您的错误文字