2012-02-01 97 views
0

我遇到了Symfony2翻译器的问题。Symfony2翻译,参数不起作用

我有一个DateTimeFormatter类(这里简化):

<?php 

namespace Project\CommonBundle\Util; 

use DateTime; 
use Symfony\Component\Translation\TranslatorInterface; 

class DateTimeFormatter 
{ 
    private $translator; 

    public function __construct(TranslatorInterface $translator) 
    { 
     $this->translator = $translator; 
    } 

    public function format(DateTime $datetime, array $options = array()) 
    { 
     $delta = time() - $datetime->getTimestamp(); 

     return $this->translator->trans('datetime_formatter.seconds_ago', array('%seconds%', $delta); 
    } 
} 

随着翻译文件:

datetime_formatter: 
    seconds_ago: %seconds% seconds ago 

而且我配置它作为一个服务:

parameters: 
    datetime_formatter.class: Skepin\CommonBundle\Util\DateTimeFormatter 
services: 
    common.util.datetime_formatter: 
      class: %datetime_formatter.class% 
      arguments: [@translator] 

的问题是:当我使用它时,显示的文字是%seconds% seconds ago,参数没有被替换。我错过了什么?

谢谢!

回答

0

问题解决:代替

return $this->translator->trans('datetime_formatter.seconds_ago', array('%seconds%' => $delta); 

return $this->translator->trans('datetime_formatter.seconds_ago', array('%seconds%', $delta); 

愚蠢的错误...