为什么我不能在 Symfony 3 中翻译带有 id 的消息

Why I can't translated message with id in Symfony 3

我是 Symfony 的新手。我正在尝试为某些语言翻译一些消息。我可以用 'Syfony is great' 这样的消息来做到这一点。现在我想为 id 做 id='hello_message'.

下面是我的index.twig

{% block body %}
<p>{{'hello_message'|trans}}</p>
{% endblock %}

下面是我的 xliff 文件

<?xml version="1.0"?>
<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
<file source-language="en" target-language="en" datatype="plaintext" original="file.ext">
    <body>
        <trans-unit id="hello_message">
            <source>hello.message</source>
            <target>Symfony Harika!</target>
        </trans-unit>
    </body>
</file>

我的默认控制器只调用 twig

    public function indexAction(Request $request)
{
    return $this->render('default/index.html.twig');
}       

翻译的是来源,而不是 id:

{% block body %}
<p>{{'hello.message'|trans}}</p>
{% endblock %}

此外,如果您在生产环境中,请记得清除缓存。

在 Symfony 3 中,您可以使用属性 resname。示例:

<?xml version="1.0" encoding="UTF-8"?>
<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
    <file original="global" datatype="plaintext" source-language="en" target-language="vi">
        <body>
            <!-- COMMONS -->
            <trans-unit id="common_say_hello" resname="common_say_hello">
                <source>Hello</source>
                <target>Xin chào</target>
            </trans-unit>            
        </body>
    </file>
</xliff>

{{ 'common_say_hello'|反式}}

输出 新潮