Fixed updating catalogue metadata from intl domain
This commit is contained in:
parent
945c7c590c
commit
33e6af5850
@ -369,6 +369,11 @@ EOF
|
|||||||
foreach ($catalogue->getResources() as $resource) {
|
foreach ($catalogue->getResources() as $resource) {
|
||||||
$filteredCatalogue->addResource($resource);
|
$filteredCatalogue->addResource($resource);
|
||||||
}
|
}
|
||||||
|
if ($metadata = $catalogue->getMetadata('', $intlDomain)) {
|
||||||
|
foreach ($metadata as $k => $v) {
|
||||||
|
$filteredCatalogue->setMetadata($k, $v, $intlDomain);
|
||||||
|
}
|
||||||
|
}
|
||||||
if ($metadata = $catalogue->getMetadata('', $domain)) {
|
if ($metadata = $catalogue->getMetadata('', $domain)) {
|
||||||
foreach ($metadata as $k => $v) {
|
foreach ($metadata as $k => $v) {
|
||||||
$filteredCatalogue->setMetadata($k, $v, $domain);
|
$filteredCatalogue->setMetadata($k, $v, $domain);
|
||||||
|
@ -38,9 +38,10 @@ class MergeOperation extends AbstractOperation
|
|||||||
|
|
||||||
foreach ($this->source->all($domain) as $id => $message) {
|
foreach ($this->source->all($domain) as $id => $message) {
|
||||||
$this->messages[$domain]['all'][$id] = $message;
|
$this->messages[$domain]['all'][$id] = $message;
|
||||||
$this->result->add([$id => $message], $this->source->defines($id, $intlDomain) ? $intlDomain : $domain);
|
$d = $this->source->defines($id, $intlDomain) ? $intlDomain : $domain;
|
||||||
if (null !== $keyMetadata = $this->source->getMetadata($id, $domain)) {
|
$this->result->add([$id => $message], $d);
|
||||||
$this->result->setMetadata($id, $keyMetadata, $domain);
|
if (null !== $keyMetadata = $this->source->getMetadata($id, $d)) {
|
||||||
|
$this->result->setMetadata($id, $keyMetadata, $d);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -48,9 +49,10 @@ class MergeOperation extends AbstractOperation
|
|||||||
if (!$this->source->has($id, $domain)) {
|
if (!$this->source->has($id, $domain)) {
|
||||||
$this->messages[$domain]['all'][$id] = $message;
|
$this->messages[$domain]['all'][$id] = $message;
|
||||||
$this->messages[$domain]['new'][$id] = $message;
|
$this->messages[$domain]['new'][$id] = $message;
|
||||||
$this->result->add([$id => $message], $this->target->defines($id, $intlDomain) ? $intlDomain : $domain);
|
$d = $this->target->defines($id, $intlDomain) ? $intlDomain : $domain;
|
||||||
if (null !== $keyMetadata = $this->target->getMetadata($id, $domain)) {
|
$this->result->add([$id => $message], $d);
|
||||||
$this->result->setMetadata($id, $keyMetadata, $domain);
|
if (null !== $keyMetadata = $this->target->getMetadata($id, $d)) {
|
||||||
|
$this->result->setMetadata($id, $keyMetadata, $d);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -49,9 +49,10 @@ class TargetOperation extends AbstractOperation
|
|||||||
foreach ($this->source->all($domain) as $id => $message) {
|
foreach ($this->source->all($domain) as $id => $message) {
|
||||||
if ($this->target->has($id, $domain)) {
|
if ($this->target->has($id, $domain)) {
|
||||||
$this->messages[$domain]['all'][$id] = $message;
|
$this->messages[$domain]['all'][$id] = $message;
|
||||||
$this->result->add([$id => $message], $this->target->defines($id, $intlDomain) ? $intlDomain : $domain);
|
$d = $this->target->defines($id, $intlDomain) ? $intlDomain : $domain;
|
||||||
if (null !== $keyMetadata = $this->source->getMetadata($id, $domain)) {
|
$this->result->add([$id => $message], $d);
|
||||||
$this->result->setMetadata($id, $keyMetadata, $domain);
|
if (null !== $keyMetadata = $this->source->getMetadata($id, $d)) {
|
||||||
|
$this->result->setMetadata($id, $keyMetadata, $d);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
$this->messages[$domain]['obsolete'][$id] = $message;
|
$this->messages[$domain]['obsolete'][$id] = $message;
|
||||||
@ -62,9 +63,10 @@ class TargetOperation extends AbstractOperation
|
|||||||
if (!$this->source->has($id, $domain)) {
|
if (!$this->source->has($id, $domain)) {
|
||||||
$this->messages[$domain]['all'][$id] = $message;
|
$this->messages[$domain]['all'][$id] = $message;
|
||||||
$this->messages[$domain]['new'][$id] = $message;
|
$this->messages[$domain]['new'][$id] = $message;
|
||||||
$this->result->add([$id => $message], $this->target->defines($id, $intlDomain) ? $intlDomain : $domain);
|
$d = $this->target->defines($id, $intlDomain) ? $intlDomain : $domain;
|
||||||
if (null !== $keyMetadata = $this->target->getMetadata($id, $domain)) {
|
$this->result->add([$id => $message], $d);
|
||||||
$this->result->setMetadata($id, $keyMetadata, $domain);
|
if (null !== $keyMetadata = $this->target->getMetadata($id, $d)) {
|
||||||
|
$this->result->setMetadata($id, $keyMetadata, $d);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -90,6 +90,29 @@ class MergeOperationTest extends AbstractOperationTest
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function testGetResultWithMetadataFromIntlDomain()
|
||||||
|
{
|
||||||
|
$leftCatalogue = new MessageCatalogue('en', ['messages+intl-icu' => ['a' => 'old_a', 'b' => 'old_b']]);
|
||||||
|
$leftCatalogue->setMetadata('a', 'foo', 'messages+intl-icu');
|
||||||
|
$leftCatalogue->setMetadata('b', 'bar', 'messages+intl-icu');
|
||||||
|
$rightCatalogue = new MessageCatalogue('en', ['messages+intl-icu' => ['b' => 'new_b', 'c' => 'new_c']]);
|
||||||
|
$rightCatalogue->setMetadata('b', 'baz', 'messages+intl-icu');
|
||||||
|
$rightCatalogue->setMetadata('c', 'qux', 'messages+intl-icu');
|
||||||
|
|
||||||
|
$mergedCatalogue = new MessageCatalogue('en', ['messages+intl-icu' => ['a' => 'old_a', 'b' => 'old_b', 'c' => 'new_c']]);
|
||||||
|
$mergedCatalogue->setMetadata('a', 'foo', 'messages+intl-icu');
|
||||||
|
$mergedCatalogue->setMetadata('b', 'bar', 'messages+intl-icu');
|
||||||
|
$mergedCatalogue->setMetadata('c', 'qux', 'messages+intl-icu');
|
||||||
|
|
||||||
|
$this->assertEquals(
|
||||||
|
$mergedCatalogue,
|
||||||
|
$this->createOperation(
|
||||||
|
$leftCatalogue,
|
||||||
|
$rightCatalogue
|
||||||
|
)->getResult()
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
protected function createOperation(MessageCatalogueInterface $source, MessageCatalogueInterface $target)
|
protected function createOperation(MessageCatalogueInterface $source, MessageCatalogueInterface $target)
|
||||||
{
|
{
|
||||||
return new MergeOperation($source, $target);
|
return new MergeOperation($source, $target);
|
||||||
|
@ -102,6 +102,28 @@ class TargetOperationTest extends AbstractOperationTest
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function testGetResultWithMetadataFromIntlDomain()
|
||||||
|
{
|
||||||
|
$leftCatalogue = new MessageCatalogue('en', ['messages+intl-icu' => ['a' => 'old_a', 'b' => 'old_b']]);
|
||||||
|
$leftCatalogue->setMetadata('a', 'foo', 'messages+intl-icu');
|
||||||
|
$leftCatalogue->setMetadata('b', 'bar', 'messages+intl-icu');
|
||||||
|
$rightCatalogue = new MessageCatalogue('en', ['messages+intl-icu' => ['b' => 'new_b', 'c' => 'new_c']]);
|
||||||
|
$rightCatalogue->setMetadata('b', 'baz', 'messages+intl-icu');
|
||||||
|
$rightCatalogue->setMetadata('c', 'qux', 'messages+intl-icu');
|
||||||
|
|
||||||
|
$diffCatalogue = new MessageCatalogue('en', ['messages+intl-icu' => ['b' => 'old_b', 'c' => 'new_c']]);
|
||||||
|
$diffCatalogue->setMetadata('b', 'bar', 'messages+intl-icu');
|
||||||
|
$diffCatalogue->setMetadata('c', 'qux', 'messages+intl-icu');
|
||||||
|
|
||||||
|
$this->assertEquals(
|
||||||
|
$diffCatalogue,
|
||||||
|
$this->createOperation(
|
||||||
|
$leftCatalogue,
|
||||||
|
$rightCatalogue
|
||||||
|
)->getResult()
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
protected function createOperation(MessageCatalogueInterface $source, MessageCatalogueInterface $target)
|
protected function createOperation(MessageCatalogueInterface $source, MessageCatalogueInterface $target)
|
||||||
{
|
{
|
||||||
return new TargetOperation($source, $target);
|
return new TargetOperation($source, $target);
|
||||||
|
Reference in New Issue
Block a user