如何在Symfony2中使用转换器进行JSON响应?

时间:2013-11-07 14:25:06

标签: json symfony internationalization translation

我在Symfony2 webapp中实现了翻译。现在我创建了一个控制器动作,我没有返回一个常规的Response,它将参数传递给我可以处理翻译的twig文件,但我希望将数据作为JsonResponse返回。

public function myAction() {
    $json_data = array(
        'status' => 'success',
        'message' => $this->get('translator')->trans('change_password.flash.success')                   
    );
    return new JsonResponse($json_data);
}

现在在twig文件中,我可以像这样定义默认翻译域:

{% trans_default_domain 'MyBundle' %}

但我在哪里可以定义默认翻译域?请记住,当我以JsonResponse返回时,我绕过了一个twig文件。

2 个答案:

答案 0 :(得分:1)

$this
    ->get('translator')
    ->trans(
         'change_password.flash.success', 
          array(), 
         'message_domain'
    )

查看翻译的API doc

trans(string $id, array $parameters = array(), string $domain = null, string $locale = null)

答案 1 :(得分:0)

默认消息域可以设置如下:

$defaultDomain = 'mydomain';
$this->get('translator')->trans('Symfony2 is great', array(), $defaultDomain);

Found here