diff --git a/src/Symfony/Component/Translation/MessageCatalogue.php b/src/Symfony/Component/Translation/MessageCatalogue.php index 429a3c687747..123a9f567019 100644 --- a/src/Symfony/Component/Translation/MessageCatalogue.php +++ b/src/Symfony/Component/Translation/MessageCatalogue.php @@ -154,9 +154,16 @@ public function replace(array $messages, string $domain = 'messages') public function add(array $messages, string $domain = 'messages') { if (!isset($this->messages[$domain])) { - $this->messages[$domain] = $messages; - } else { - foreach ($messages as $id => $message) { + $this->messages[$domain] = []; + } + $intlDomain = $domain; + if (false === mb_strpos($intlDomain, self::INTL_DOMAIN_SUFFIX)) { + $intlDomain .= self::INTL_DOMAIN_SUFFIX; + } + foreach ($messages as $id => $message) { + if (isset($this->messages[$intlDomain]) && \array_key_exists($id, $this->messages[$intlDomain])) { + $this->messages[$intlDomain][$id] = $message; + } else { $this->messages[$domain][$id] = $message; } }