我正在尝试制作一个允许翻译系统的网络服务 所以我在json中康复了 要翻译的术语和我必须翻译的语言 我的问题是我无法更改控制器中的defaultLocal
class TranslateController extends RestController
{
/**
* @param ARDParamFetcher $paramFetcher
* @RequestParam(name="lang", requirements="[a-zA-Z0-9_]+", description="language.")
* @RequestParam(name="msg", requirements="[a-zA-Z0-9_]+", description="message.")
*/
public function translateAction(ARDParamFetcher $paramFetcher)
{
$lang = $paramFetcher->get('lang');
$msg = $paramFetcher->get('msg');
$b = $this->get('translator')->setLocale($lang)->trans($msg);
print_r($b);
exit();
return $this->view(array());
}
}
这是我的文件messages.fr.yml
的内容# messages.fr.yml
TXT_1 : il y a %count% objet
请帮助
答案 0 :(得分:0)
确保您已在配置文件中启用了翻译器:
framework:
translator: { fallback: %locale% }
有关语法,请参阅@Roma comment。
答案 1 :(得分:0)
我发现这里的解决方案是写什么:
$lang = $paramFetcher->get('lang');
$msg = $paramFetcher->get('msg');
$request = $this->getRequest();
$request->setLocale($lang);
$t = $this->get('translator')->trans($msg);