[Bridge\Twig] lazy load TranslatorTrait

This commit is contained in:
Nicolas Grekas 2019-05-28 11:03:44 +02:00
parent fc007fcd86
commit 2ba8b8f15e

View File

@ -33,12 +33,6 @@ use Twig\TwigFilter;
*/ */
class TranslationExtension extends AbstractExtension class TranslationExtension extends AbstractExtension
{ {
use TranslatorTrait {
getLocale as private;
setLocale as private;
trans as private doTrans;
}
private $translator; private $translator;
private $translationNodeVisitor; private $translationNodeVisitor;
@ -115,7 +109,9 @@ class TranslationExtension extends AbstractExtension
$arguments['%count%'] = $count; $arguments['%count%'] = $count;
} }
if (null === $this->translator) { if (null === $this->translator) {
return $this->doTrans($message, $arguments, $domain, $locale); $this->translator = new class() implements TranslatorInterface {
use TranslatorTrait;
};
} }
return $this->translator->trans($message, $arguments, $domain, $locale); return $this->translator->trans($message, $arguments, $domain, $locale);
@ -127,8 +123,11 @@ class TranslationExtension extends AbstractExtension
public function transchoice($message, $count, array $arguments = [], $domain = null, $locale = null) public function transchoice($message, $count, array $arguments = [], $domain = null, $locale = null)
{ {
if (null === $this->translator) { if (null === $this->translator) {
return $this->doTrans($message, array_merge(['%count%' => $count], $arguments), $domain, $locale); $this->translator = new class() implements TranslatorInterface {
use TranslatorTrait;
};
} }
if ($this->translator instanceof TranslatorInterface) { if ($this->translator instanceof TranslatorInterface) {
return $this->translator->trans($message, array_merge(['%count%' => $count], $arguments), $domain, $locale); return $this->translator->trans($message, array_merge(['%count%' => $count], $arguments), $domain, $locale);
} }