Here is the code to create a service which uses the translator component from Symfony2. The service is also tested.

Create the service

in messages.en.yml :

cb.texta1: Travel from %A% to %B%

in services.yml :

  class: AppBundle\Service\LabelBuilder
  arguments: [@translator]

LabelBuilder.php :

namespace AppBundle\Service;

use Symfony\Component\Translation\TranslatorInterface;

class LabelBuilder {
     * @var TranslatorInterface
    private $translator;

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

    public function buildText1($labelA, $labelB) {
        return $this->translator->trans(
                '%A%' => $labelA,
                '%B%' => $labelB

Use the service in your controller

$this->get('cb.labelbuilder')->buildText1($lblA, $lblB);

To test with PHPUnit

Source SO


namespace AppBundle\Service;

use AppBundle\Entity\StatPriceDuration;
use Symfony\Bundle\FrameworkBundle\Test\WebTestCase;

class LabelBuilderTest extends WebTestCase {

    protected static $translation;

    public static function setUpBeforeClass() {
        $kernel = static::createKernel();
        self::$translation = $kernel->getContainer()->get('translator');

    public function testBuildText1() {
        $builder = new LabelBuilder(self::$translation);

        $result = $builder->buildText1("Paris", "Lille");

            "Travel from Paris to Lille"