2

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

这是我的设置:

app/Resources/translations/messages.en.xliff

配置.yml

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

参数.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。任何帮助将不胜感激!

4

1 回答 1

4

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

composer require symfony/translation

php app/console cache:clear

对于那些偶然发现这篇文章的人,这里有一些你在尝试使翻译工作时可能遇到的问题和需要检查的事情(基于我所有的阅读)

  • 检查作曲家的 symfony/翻译
  • 检查 config.yml 和 parameters.yml(如初始帖子所示)
  • 检查 /messages.[locale].xliff 从 Bundle/Resources/translations/ 与 app/Resources/translations/ 的覆盖不要覆盖(或 o
  • 添加新翻译文件时始终清除缓存
于 2015-03-23T12:49:23.430 回答