【发布时间】: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