diff --git a/src/Symfony/Bridge/Twig/Extension/TranslationExtension.php b/src/Symfony/Bridge/Twig/Extension/TranslationExtension.php index 5155169a8173d..a748e1ed72e7b 100644 --- a/src/Symfony/Bridge/Twig/Extension/TranslationExtension.php +++ b/src/Symfony/Bridge/Twig/Extension/TranslationExtension.php @@ -32,7 +32,7 @@ class TranslationExtension extends AbstractExtension private $translator; private $translationNodeVisitor; - public function __construct(TranslatorInterface $translator, NodeVisitorInterface $translationNodeVisitor = null) + public function __construct(TranslatorInterface $translator = null, NodeVisitorInterface $translationNodeVisitor = null) { if (!$translationNodeVisitor) { $translationNodeVisitor = new TranslationNodeVisitor(); @@ -94,11 +94,19 @@ public function getTranslationNodeVisitor() public function trans($message, array $arguments = array(), $domain = null, $locale = null) { + if (null === $this->translator) { + return $message; + } + return $this->translator->trans($message, $arguments, $domain, $locale); } public function transchoice($message, $count, array $arguments = array(), $domain = null, $locale = null) { + if (null === $this->translator) { + return $message; + } + return $this->translator->transChoice($message, $count, array_merge(array('%count%' => $count), $arguments), $domain, $locale); } diff --git a/src/Symfony/Bundle/TwigBundle/DependencyInjection/Compiler/ExtensionPass.php b/src/Symfony/Bundle/TwigBundle/DependencyInjection/Compiler/ExtensionPass.php index 31d1b758eff56..667acfc350fbc 100644 --- a/src/Symfony/Bundle/TwigBundle/DependencyInjection/Compiler/ExtensionPass.php +++ b/src/Symfony/Bundle/TwigBundle/DependencyInjection/Compiler/ExtensionPass.php @@ -35,9 +35,6 @@ public function process(ContainerBuilder $container) if (!interface_exists('Symfony\Component\Routing\Generator\UrlGeneratorInterface')) { $container->removeDefinition('twig.extension.routing'); } - if (!interface_exists('Symfony\Component\Translation\TranslatorInterface')) { - $container->removeDefinition('twig.extension.trans'); - } if (!class_exists('Symfony\Component\Yaml\Yaml')) { $container->removeDefinition('twig.extension.yaml'); @@ -49,10 +46,6 @@ public function process(ContainerBuilder $container) $container->getDefinition('twig.loader.native_filesystem')->addMethodCall('addPath', array(dirname(dirname($reflClass->getFileName())).'/Resources/views/Form')); } - if ($container->has('translator')) { - $container->getDefinition('twig.extension.trans')->addTag('twig.extension'); - } - if ($container->has('router')) { $container->getDefinition('twig.extension.routing')->addTag('twig.extension'); } diff --git a/src/Symfony/Bundle/TwigBundle/Resources/config/twig.xml b/src/Symfony/Bundle/TwigBundle/Resources/config/twig.xml index ff564b412148a..50e439b39ec64 100644 --- a/src/Symfony/Bundle/TwigBundle/Resources/config/twig.xml +++ b/src/Symfony/Bundle/TwigBundle/Resources/config/twig.xml @@ -72,7 +72,8 @@ - + +