Перевод Symfony2, параметр не работает - PullRequest
1 голос
/ 01 февраля 2012

У меня проблема с переводчиком 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, параметр не заменяется.Что мне не хватает?

Спасибо!

1 Ответ

1 голос
/ 02 февраля 2012

Проблема решена:

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

вместо:

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

Глупая ошибка ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...