diff --git a/src/Symfony/Component/Translation/DataCollector/TranslationDataCollector.php b/src/Symfony/Component/Translation/DataCollector/TranslationDataCollector.php index 4e3f54b60832..eb9d1e733306 100644 --- a/src/Symfony/Component/Translation/DataCollector/TranslationDataCollector.php +++ b/src/Symfony/Component/Translation/DataCollector/TranslationDataCollector.php @@ -95,21 +95,22 @@ public function getName() private function sanitizeCollectedMessages($messages) { + $result = array(); foreach ($messages as $key => $message) { - $messages[$key]['translation'] = $this->sanitizeString($message['translation']); - } - - return array_reduce($messages, function ($result, $message) { $messageId = $message['locale'].$message['domain'].$message['id']; + if (!isset($result[$messageId])) { $message['count'] = 1; + $messages[$key]['translation'] = $this->sanitizeString($message['translation']); $result[$messageId] = $message; } else { $result[$messageId]['count']++; } - return $result; - }, array()); + unset($messages[$key]); + } + + return $result; } private function computeCount($messages)