Symfony 2 twig坏凭证trans bug

时间:2014-06-03 14:50:05

标签: symfony twig

美好的一天。 我在Symfony 2中有2个项目。首先,我使用{{error.message | trans}}进行翻译 “凭据错误”授权错误消息。它从Component \ Translation \ Translator.php调用Translator类trans方法来翻译该字符串。

public function trans($id, array $parameters = array(), $domain = null, $locale = null)
{
    if (null === $locale) {
        $locale = $this->getLocale();
    }

    if (null === $domain) {
        $domain = 'messages';
    }

    if (!isset($this->catalogues[$locale])) {
        $this->loadCatalogue($locale);
    }

    return strtr($this->catalogues[$locale]->get((string) $id, $domain), $parameters);
}

它正常工作,并从messages.domain.yml文件返回已翻译的字符串。在第二个项目中,我使用相同的设置,并尝试以相同的方式在树枝中翻译错误字符串。但它不起作用,并返回原始的“Bad credentials”字符串。检查后,我发现,Component \ Translation \ IdentityTranslator.php类正在创建(而不是Translator.php),并且正在调用方法trans:

   /**
   * IdentityTranslator does not translate anything.
   *
   * @author Fabien Potencier <fabien@symfony.com>
   *
   * @api
   */
   class IdentityTranslator implements TranslatorInterface
   {
       /// More code here
       public function trans($id, array $parameters = array(), $domain = null, $locale = null)
       {
          return strtr((string) $id, $parameters);
       } 
   } 

因此,它只返回原始消息。什么可能是这种问题的潜在根源?这是Symfony的bug吗? (两个项目都使用Symfony 2.4.4)

0 个答案:

没有答案