Symfony 2 - 翻译不起作用(xliff)

时间:2015-03-23 10:53:13

标签: symfony translation xliff

我已经阅读了大量关于Symfony 2翻译的答案和教程,但我仍然没有让它发挥作用。没有显示错误,但消息不会在枝条模板中翻译(也不会通过测试$ 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-imag Bundle安装其他Bundle。任何帮助将非常感谢!

1 个答案:

答案 0 :(得分:4)

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

composer require symfony/translation

php app/console cache:clear

对于那些偶然发现这篇文章的人来说,这里有一些问题。在尝试翻译工作时可能会遇到的事情(基于我的所有阅读)

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