diff --git a/Tests/TranslatorCacheTest.php b/Tests/TranslatorCacheTest.php index 990caee1..4199f596 100644 --- a/Tests/TranslatorCacheTest.php +++ b/Tests/TranslatorCacheTest.php @@ -46,9 +46,9 @@ protected function deleteTmpDir() continue; } if ($path->isDir()) { - rmdir($path->__toString()); + @rmdir($path->__toString()); } else { - unlink($path->__toString()); + @unlink($path->__toString()); } } rmdir($this->tmpDir); diff --git a/TranslatableMessage.php b/TranslatableMessage.php index 74b77f68..3c4986a6 100644 --- a/TranslatableMessage.php +++ b/TranslatableMessage.php @@ -48,9 +48,13 @@ public function getDomain(): ?string public function trans(TranslatorInterface $translator, ?string $locale = null): string { - return $translator->trans($this->getMessage(), array_map( - static fn ($parameter) => $parameter instanceof TranslatableInterface ? $parameter->trans($translator, $locale) : $parameter, - $this->getParameters() - ), $this->getDomain(), $locale); + $parameters = $this->getParameters(); + foreach ($parameters as $k => $v) { + if ($v instanceof TranslatableInterface) { + $parameters[$k] = $v->trans($translator, $locale); + } + } + + return $translator->trans($this->getMessage(), $parameters, $this->getDomain(), $locale); } } diff --git a/Translator.php b/Translator.php index 4ce3edad..0553da7d 100644 --- a/Translator.php +++ b/Translator.php @@ -201,7 +201,7 @@ public function trans(?string $id, array $parameters = [], ?string $domain = nul } } - if (null === $globalParameters =& $this->globalTranslatedParameters[$locale]) { + if (null === $globalParameters = &$this->globalTranslatedParameters[$locale]) { $globalParameters = $this->globalParameters; foreach ($globalParameters as $key => $value) { if ($value instanceof TranslatableInterface) {