繁体   English   中英

Symfony 2消息翻译

[英]Symfony 2 message translation

在我问这个问题之前,我已经仔细检查过许多关于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 %}

身份验证失败时,我仍然会继续收到“错误的凭据”消息。 我试图清除缓存,但这无济于事。

也许我错过了一些东西。 任何帮助表示赞赏。 谢谢。

我猜问题是因为您将源翻译指定为“错误的凭据”,但您使用“ 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 %}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM