【问题标题】:Translations not working in Symfony2翻译在 Symfony2 中不起作用
【发布时间】:2015-01-12 20:51:58
【问题描述】:

我有一个法语翻译文件,位于FooBundle/Resources/translations/messages.fr.xlf

例子:

<?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>Foo</source>
                <target>Bar</target>
            </trans-unit>
        </body>
    </file>
</xliff>

但我似乎无法进行任何翻译,无论是在控制器中:

// FooBundle/Controller/DefaultController.php
/**
 * @Route("/")
 * @Template()
 */
public function indexAction(Request $request)
{
    $request->setLocale("fr");
    $translatedMessage = $this->get('translator')->trans('Foo');

    echo $translatedMessage;

    return array();
}

或树枝模板:

// FooBundle/Resources/views/Default/index.html.twig
{{ 'Foo'|trans }} or {% trans %}Foo{% endtrans %}

它总是显示Foo(原始字符串)。

作为我的默认语言环境,我使用英语 ('en')。我的语言环境配置来自config.yml:

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

我尝试清理缓存,但没有任何区别。

如果我尝试调试翻译,则表明它们正在被使用:

$ php app/console debug:translation fr FooBundle

+----------+---------------+----------------------+
| State(s) | Id            | Message Preview (fr) |
+----------+---------------+----------------------+
|          | Foo           | Bar                  |
+----------+---------------+----------------------+

知道这里出了什么问题吗?

【问题讨论】:

  • 刚刚用你的代码进行了测试,没有修改(Symfony 2.6.3),它没有问题。尝试输出框架包的设置,并检查与翻译服务相关的一切是否正常。

标签: php symfony twig xliff symfony-2.6


【解决方案1】:

看来问题出在我安装的另一个包 (LuneticsLocaleBundle) 上。

不知何故,它必须覆盖我在控制器中所做的$request-&gt;setLocale("fr");,所以我使用en_US 作为语言环境。这就是它没有显示翻译的原因。

【讨论】:

    猜你喜欢
    • 2011-11-09
    • 2018-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-09
    • 2015-06-23
    • 2014-04-20
    相关资源
    最近更新 更多