[Bridge\Twig] lazy load TranslatorTrait
This commit is contained in:
parent
fc007fcd86
commit
2ba8b8f15e
@ -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);
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user