我需要翻译(并覆盖英文)“用户帐户已禁用”。当用户尝试使用禁用的用户帐户登录时显示的消息。“用户帐户被禁用”的翻译。
发现这个消息似乎这消息不是任何XLIFF或YML翻译文件的一部分。这是否意味着我们必须重写此类来更改/翻译此消息?
有没有更清洁的解决方案?
感谢
我需要翻译(并覆盖英文)“用户帐户已禁用”。当用户尝试使用禁用的用户帐户登录时显示的消息。“用户帐户被禁用”的翻译。
发现这个消息似乎这消息不是任何XLIFF或YML翻译文件的一部分。这是否意味着我们必须重写此类来更改/翻译此消息?
有没有更清洁的解决方案?
感谢
捕获的异常通常由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中呈现(并使用反式过滤器进行翻译)。
您可以在app/Resources/translations或app/Resources/FOSUserBundle /翻译中添加这些消息的新翻译,或者通过symfony搜索其他位置的翻译(documentation) - 确保您使用的是right translation domain - 这是FOSUserBundle
以防您正在使用该软件包。
感谢@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>
把
'User account is disabled.': Ce compte n'est pas activé.
到MyBundle /资源/翻译/安全.fr.yml为我工作。