2

在我问这个问题之前,我已经在stackoverflow上仔细检查了许多类似的问题,但无论如何都没有解决。

任务是使用俄语消息而不是英语。让我们假设它是在众所周知的身份验证失败消息“错误凭据”的情况下。所以这就是我所做的。

在我的配置中:

translator:      { fallback: en }
default_locale:  ru

创建了messages.ru.xliff

<?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>Bad credentials</source>
                <target>My russian variant here</target>
            </trans-unit>
        </body>
    </file>
</xliff>

最后,在我的 login.html.twig 中:

{% if error %}
<div class="error">{{ error.message | trans }}</div>
{% endif %}

当身份验证失败时,我仍然会继续收到“错误凭据”消息。我试图清除缓存,但它没有帮助。

也许我错过了什么。任何帮助表示赞赏。谢谢。

4

1 回答 1

1

我想问题是因为您将源翻译指定为“错误凭据”,但您使用“error.message”作为翻译器的输入。所以你的 messages.ru.xliff 应该看起来更像:

<?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>error.message</source>
                <target>My russian variant here</target>
            </trans-unit>
        </body>
    </file>
</xliff>

或更改模板中的消息标签:

{% if error %}
<div class="error">{{ "Bad credentials" | trans }}</div>
{% endif %}
于 2013-06-22T12:13:23.517 回答