如何在控制器中设置翻译语言

时间:2014-10-15 15:37:07

标签: web-services symfony

我正在尝试制作一个允许翻译系统的网络服务 所以我在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

请帮助

2 个答案:

答案 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);