Symfony 2 - 翻译不工作(xliff)

Symfony 2 - Translation not working (xliff)

我已经阅读了大量关于 Symfony 2 翻译的答案和教程,但我仍然无法正常工作。没有显示错误,但是消息没有在 twig 模板中翻译(也没有通过测试 $this->get('translator')->trans('...') )。 xliff 文件似乎已加载,因为如果我故意添加错误字符,标记 Symfony 会抛出错误。

这是我的设置:

app/Resources/translations/messages.en.xliff

config.yml

translator: { fallback: "%locale%" }
...
default_locale:  "%locale%"

parameters.yml

locale: en

messages.en.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>test.message</source>
                <target>TRANSLATED TEST</target>
            </trans-unit>
        </body>
    </file>
</xliff>

运行了还是不行

php app/console cache:clear

在我的树枝模板中(它是一个包含的模板...)

{{ "test.message"|trans }}

有什么想法吗? PS:我没有从 liip-imagine Bundle 安装其他 Bundle。非常感谢任何帮助!

我通过将 symfony/translation 添加到 composer 然后更新 symfony 并清除缓存解决了我的问题。

composer require symfony/translation

php app/console cache:clear

对于偶然发现此问题的人 post,以下是您在尝试使翻译工作时可能遇到的一些问题和需要检查的事项(基于我的所有阅读)

  • 检查 symfony/translation
  • 的作曲家
  • 检查 config.yml 和 parameters.yml(如初始 post 所示)
  • 检查 Bundle/Resources/translations/ 对 /messages.[locale].xliff 的覆盖 vs app/Resources/translations/ 不要覆盖(或 o
  • 添加新翻译文件时始终清除缓存