I'm having a problem with Symfony2's translator.
I have a DateTimeFormatter class (simplified here):
<?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);
}
}
With translation file:
datetime_formatter:
seconds_ago: %seconds% seconds ago
And I configured it as a service:
parameters:
datetime_formatter.class: Skepin\CommonBundle\Util\DateTimeFormatter
services:
common.util.datetime_formatter:
class: %datetime_formatter.class%
arguments: [@translator]
The problem is: when I use it, the text displayed is %seconds% seconds ago, the parameter is not replaced. What am I missing?
Thanks!
Problem resolved:
return $this->translator->trans('datetime_formatter.seconds_ago', array('%seconds%' => $delta);
instead of:
return $this->translator->trans('datetime_formatter.seconds_ago', array('%seconds%', $delta);
Stupid error...
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With