【问题标题】:How to use translator for JSON response in Symfony2?如何在 Symfony2 中使用翻译器进行 JSON 响应?
【发布时间】:2013-11-19 05:47:49
【问题描述】:

我在我的 Symfony2 webapp 中实现了翻译。现在我创建了一个控制器操作,我不返回常规的Response,它将参数传递给我可以处理翻译的树枝文件,但我想以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 文件。

【问题讨论】:

    标签: json symfony internationalization translation


    【解决方案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)
    

    【讨论】:

    • 你快了几微秒,我正要发布我找到的答案。完全一样:-)
    【解决方案2】:

    默认消息域可以这样设置:

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

    Found here.

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-07-18
      • 2020-08-14
      • 1970-01-01
      • 1970-01-01
      • 2012-07-27
      • 2014-05-23
      • 2014-01-23
      • 1970-01-01
      相关资源
      最近更新 更多