Web services 如何在控制器中为转换器设置语言

Web services 如何在控制器中为转换器设置语言,web-services,symfony,Web Services,Symfony,我正在尝试创建一个允许翻译系统的web服务 所以我用json恢复了 要翻译的术语和我必须翻译的语言 我的问题是我无法更改控制器中的defaultLocal class TranslateController extends RestController { } 这是我的文件messages.fr.yml的内容 # messages.fr.yml TXT_1 : il y a %count% objet 任何帮助请确保您已在配置文件中启用转换器: framework: translat

我正在尝试创建一个允许翻译系统的web服务 所以我用json恢复了 要翻译的术语和我必须翻译的语言 我的问题是我无法更改控制器中的defaultLocal

class TranslateController extends RestController
{

}

这是我的文件messages.fr.yml的内容

# messages.fr.yml
TXT_1 : il y a %count% objet

任何帮助请确保您已在配置文件中启用转换器:

framework:
    translator: { fallback: %locale% }

有关语法,请参见@Roma comment。

我发现解决方案如下:

$lang = $paramFetcher->get('lang');
$msg = $paramFetcher->get('msg');
$request = $this->getRequest();
$request->setLocale($lang);
$t = $this->get('translator')->trans($msg);

您是否检查了
$msg
$lang
变量?另外,您可能需要将
count
传递给此翻译:
->trans($msg,['%count%'=>$someVar],'messages')是的,我测试变量的内容,但我想要的是,它看起来像是一个%count%objet,我可以分配控制器语言,我不知道我的语法是否适合设置本地
$lang = $paramFetcher->get('lang');
$msg = $paramFetcher->get('msg');
$request = $this->getRequest();
$request->setLocale($lang);
$t = $this->get('translator')->trans($msg);