gpt4 book ai didi

php - 翻译在 Symfony2 中不起作用

转载 作者:搜寻专家 更新时间:2023-10-31 22:01:40 24 4
gpt4 key购买 nike

我在 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>

但我似乎无法进行任何翻译工作,无论是在 Controller 中:

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

echo $translatedMessage;

return array();
}

或者 Twig 模板:

// 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 |
+----------+---------------+----------------------+

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

最佳答案

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

它必须以某种方式覆盖我在 Controller 中执行的 $request->setLocale("fr");,所以结果证明我使用的是 en_US 作为语言环境。这就是它没有显示翻译的原因。

关于php - 翻译在 Symfony2 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27910549/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com