diff --git a/src/Symfony/Component/Translation/Catalogue/TargetOperation.php b/src/Symfony/Component/Translation/Catalogue/TargetOperation.php index 8221d184d2f89..c8b0655125321 100644 --- a/src/Symfony/Component/Translation/Catalogue/TargetOperation.php +++ b/src/Symfony/Component/Translation/Catalogue/TargetOperation.php @@ -49,7 +49,7 @@ protected function processDomain($domain) foreach ($this->source->all($domain) as $id => $message) { if ($this->target->has($id, $domain)) { $this->messages[$domain]['all'][$id] = $message; - $d = $this->target->defines($id, $intlDomain) ? $intlDomain : $domain; + $d = $this->source->defines($id, $intlDomain) ? $intlDomain : $domain; $this->result->add([$id => $message], $d); if (null !== $keyMetadata = $this->source->getMetadata($id, $d)) { $this->result->setMetadata($id, $keyMetadata, $d); diff --git a/src/Symfony/Component/Translation/Tests/Catalogue/TargetOperationTest.php b/src/Symfony/Component/Translation/Tests/Catalogue/TargetOperationTest.php index 354c213e9e3b7..d5441f3bee4ef 100644 --- a/src/Symfony/Component/Translation/Tests/Catalogue/TargetOperationTest.php +++ b/src/Symfony/Component/Translation/Tests/Catalogue/TargetOperationTest.php @@ -71,13 +71,45 @@ public function testGetResultWithMixedDomains() { $this->assertEquals( new MessageCatalogue('en', [ - 'messages+intl-icu' => ['a' => 'old_a'], + 'messages' => ['a' => 'old_a'], ]), $this->createOperation( new MessageCatalogue('en', ['messages' => ['a' => 'old_a']]), new MessageCatalogue('en', ['messages+intl-icu' => ['a' => 'new_a']]) )->getResult() ); + + $this->assertEquals( + new MessageCatalogue('en', [ + 'messages+intl-icu' => ['a' => 'old_a'], + ]), + $this->createOperation( + new MessageCatalogue('en', ['messages+intl-icu' => ['a' => 'old_a']]), + new MessageCatalogue('en', ['messages' => ['a' => 'new_a']]) + )->getResult() + ); + + $this->assertEquals( + new MessageCatalogue('en', [ + 'messages+intl-icu' => ['a' => 'old_a'], + 'messages' => ['b' => 'new_b'], + ]), + $this->createOperation( + new MessageCatalogue('en', ['messages+intl-icu' => ['a' => 'old_a']]), + new MessageCatalogue('en', ['messages' => ['a' => 'new_a', 'b' => 'new_b']]) + )->getResult() + ); + + $this->assertEquals( + new MessageCatalogue('en', [ + 'messages' => ['a' => 'old_a'], + 'messages+intl-icu' => ['b' => 'new_b'], + ]), + $this->createOperation( + new MessageCatalogue('en', ['messages' => ['a' => 'old_a']]), + new MessageCatalogue('en', ['messages+intl-icu' => ['a' => 'new_a', 'b' => 'new_b']]) + )->getResult() + ); } public function testGetResultWithMetadata()