From 4eefc31558b643eb33ab5b4823fef33f6664a015 Mon Sep 17 00:00:00 2001 From: Guite Date: Fri, 17 Jan 2020 14:03:11 +0100 Subject: [PATCH 1/6] prefer intl message domain --- src/Symfony/Component/Translation/MessageCatalogue.php | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/Symfony/Component/Translation/MessageCatalogue.php b/src/Symfony/Component/Translation/MessageCatalogue.php index 429a3c687747..aea37517c0b6 100644 --- a/src/Symfony/Component/Translation/MessageCatalogue.php +++ b/src/Symfony/Component/Translation/MessageCatalogue.php @@ -155,6 +155,10 @@ public function add(array $messages, string $domain = 'messages') { if (!isset($this->messages[$domain])) { $this->messages[$domain] = $messages; + } elseif (isset($this->messages[$domain.self::INTL_DOMAIN_SUFFIX])) { + foreach ($messages as $id => $message) { + $this->messages[$domain.self::INTL_DOMAIN_SUFFIX][$id] = $message; + } } else { foreach ($messages as $id => $message) { $this->messages[$domain][$id] = $message; From c1965754368c35a972e526e47fe175a32e44a8a3 Mon Sep 17 00:00:00 2001 From: Guite Date: Fri, 17 Jan 2020 15:07:37 +0100 Subject: [PATCH 2/6] updated the fix --- .../Translation/MessageCatalogue.php | 20 ++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/src/Symfony/Component/Translation/MessageCatalogue.php b/src/Symfony/Component/Translation/MessageCatalogue.php index aea37517c0b6..2bb4d696ebac 100644 --- a/src/Symfony/Component/Translation/MessageCatalogue.php +++ b/src/Symfony/Component/Translation/MessageCatalogue.php @@ -153,15 +153,21 @@ public function replace(array $messages, string $domain = 'messages') */ public function add(array $messages, string $domain = 'messages') { + $intlDomain = $domain; + if (false === mb_strpos($intlDomain, self::INTL_DOMAIN_SUFFIX)) { + $intlDomain .= self::INTL_DOMAIN_SUFFIX; + } + if (!isset($this->messages[$intlDomain])) { + $this->messages[$intlDomain] = []; + } if (!isset($this->messages[$domain])) { - $this->messages[$domain] = $messages; - } elseif (isset($this->messages[$domain.self::INTL_DOMAIN_SUFFIX])) { - foreach ($messages as $id => $message) { - $this->messages[$domain.self::INTL_DOMAIN_SUFFIX][$id] = $message; - } - } else { - foreach ($messages as $id => $message) { + $this->messages[$domain] = []; + } + foreach ($messages as $id => $message) { + if (isset($this->messages[$domain][$id])) { $this->messages[$domain][$id] = $message; + } else { + $this->messages[$intlDomain][$id] = $message; } } } From 8ec41c0f21321fd2c6164d9683676ce7a8548f14 Mon Sep 17 00:00:00 2001 From: Guite Date: Fri, 17 Jan 2020 15:26:18 +0100 Subject: [PATCH 3/6] updated the fix --- src/Symfony/Component/Translation/MessageCatalogue.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Symfony/Component/Translation/MessageCatalogue.php b/src/Symfony/Component/Translation/MessageCatalogue.php index 2bb4d696ebac..ab5de3bf51ac 100644 --- a/src/Symfony/Component/Translation/MessageCatalogue.php +++ b/src/Symfony/Component/Translation/MessageCatalogue.php @@ -164,10 +164,10 @@ public function add(array $messages, string $domain = 'messages') $this->messages[$domain] = []; } foreach ($messages as $id => $message) { - if (isset($this->messages[$domain][$id])) { - $this->messages[$domain][$id] = $message; - } else { + if (isset($this->messages[$intlDomain][$id])) { $this->messages[$intlDomain][$id] = $message; + } else { + $this->messages[$domain][$id] = $message; } } } From 232bc56f56e1880e4da04d48124461ed976a40ea Mon Sep 17 00:00:00 2001 From: Guite Date: Fri, 17 Jan 2020 15:33:57 +0100 Subject: [PATCH 4/6] fix remaining tests --- src/Symfony/Component/Translation/MessageCatalogue.php | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/src/Symfony/Component/Translation/MessageCatalogue.php b/src/Symfony/Component/Translation/MessageCatalogue.php index ab5de3bf51ac..34cda1bdc4c5 100644 --- a/src/Symfony/Component/Translation/MessageCatalogue.php +++ b/src/Symfony/Component/Translation/MessageCatalogue.php @@ -153,16 +153,13 @@ public function replace(array $messages, string $domain = 'messages') */ public function add(array $messages, string $domain = 'messages') { + if (!isset($this->messages[$domain])) { + $this->messages[$domain] = []; + } $intlDomain = $domain; if (false === mb_strpos($intlDomain, self::INTL_DOMAIN_SUFFIX)) { $intlDomain .= self::INTL_DOMAIN_SUFFIX; } - if (!isset($this->messages[$intlDomain])) { - $this->messages[$intlDomain] = []; - } - if (!isset($this->messages[$domain])) { - $this->messages[$domain] = []; - } foreach ($messages as $id => $message) { if (isset($this->messages[$intlDomain][$id])) { $this->messages[$intlDomain][$id] = $message; From f659286de12d7a7f61f62d940dd29dfff4b3bfd9 Mon Sep 17 00:00:00 2001 From: Guite Date: Fri, 17 Jan 2020 17:20:10 +0100 Subject: [PATCH 5/6] catch edge case if existing key has no value --- src/Symfony/Component/Translation/MessageCatalogue.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Symfony/Component/Translation/MessageCatalogue.php b/src/Symfony/Component/Translation/MessageCatalogue.php index 34cda1bdc4c5..5d44a247204e 100644 --- a/src/Symfony/Component/Translation/MessageCatalogue.php +++ b/src/Symfony/Component/Translation/MessageCatalogue.php @@ -161,7 +161,7 @@ public function add(array $messages, string $domain = 'messages') $intlDomain .= self::INTL_DOMAIN_SUFFIX; } foreach ($messages as $id => $message) { - if (isset($this->messages[$intlDomain][$id])) { + if (isset($this->messages[$intlDomain]) && array_key_exists($id, $this->messages[$intlDomain])) { $this->messages[$intlDomain][$id] = $message; } else { $this->messages[$domain][$id] = $message; From 77fcb80f2e49c5b12c354f5b7e68df3a1d19580f Mon Sep 17 00:00:00 2001 From: Axel Guckelsberger Date: Fri, 17 Jan 2020 17:22:14 +0100 Subject: [PATCH 6/6] cs --- src/Symfony/Component/Translation/MessageCatalogue.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Symfony/Component/Translation/MessageCatalogue.php b/src/Symfony/Component/Translation/MessageCatalogue.php index 5d44a247204e..123a9f567019 100644 --- a/src/Symfony/Component/Translation/MessageCatalogue.php +++ b/src/Symfony/Component/Translation/MessageCatalogue.php @@ -161,7 +161,7 @@ public function add(array $messages, string $domain = 'messages') $intlDomain .= self::INTL_DOMAIN_SUFFIX; } foreach ($messages as $id => $message) { - if (isset($this->messages[$intlDomain]) && array_key_exists($id, $this->messages[$intlDomain])) { + if (isset($this->messages[$intlDomain]) && \array_key_exists($id, $this->messages[$intlDomain])) { $this->messages[$intlDomain][$id] = $message; } else { $this->messages[$domain][$id] = $message;