“用户帐户被禁用”的翻译。

时间:2013-10-05 09:30:06

标签: symfony

我需要翻译(并覆盖英语)“用户帐户被禁用”。用户尝试使用已禁用的用户帐户登录时显示的消息。

我在https://github.com/symfony/symfony/blob/master/src/Symfony/Component/Security/Core/User/UserChecker.php

中找到了此消息

似乎此消息不是任何xliff或yml转换文件的一部分。这是否意味着我们必须覆盖此类才能更改/翻译此消息?

有没有更清洁的解决方案?

由于

3 个答案:

答案 0 :(得分:4)

未捕获的异常通常由TwigBundle中的ExceptionController呈现,然后根据请求使用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 / translation中添加这些消息的新翻译,或者通过symfony(documentation)搜索其中一个翻译位置 - 确保您正在使用权限translation domain - 如果您正在使用该捆绑包,则为FOSUserBundle

答案 1 :(得分: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>

答案 2 :(得分:0)

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

进入MyBundle / Resources / translations / security.fr.yml为我工作。