Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit 33e6af5

Browse filesBrowse files
committed
Fixed updating catalogue metadata from intl domain
1 parent 945c7c5 commit 33e6af5
Copy full SHA for 33e6af5

File tree

Expand file treeCollapse file tree

5 files changed

+66
-12
lines changed
Filter options
Expand file treeCollapse file tree

5 files changed

+66
-12
lines changed

‎src/Symfony/Bundle/FrameworkBundle/Command/TranslationUpdateCommand.php

Copy file name to clipboardExpand all lines: src/Symfony/Bundle/FrameworkBundle/Command/TranslationUpdateCommand.php
+5Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -369,6 +369,11 @@ private function filterCatalogue(MessageCatalogue $catalogue, string $domain): M
369369
foreach ($catalogue->getResources() as $resource) {
370370
$filteredCatalogue->addResource($resource);
371371
}
372+
if ($metadata = $catalogue->getMetadata('', $intlDomain)) {
373+
foreach ($metadata as $k => $v) {
374+
$filteredCatalogue->setMetadata($k, $v, $intlDomain);
375+
}
376+
}
372377
if ($metadata = $catalogue->getMetadata('', $domain)) {
373378
foreach ($metadata as $k => $v) {
374379
$filteredCatalogue->setMetadata($k, $v, $domain);

‎src/Symfony/Component/Translation/Catalogue/MergeOperation.php

Copy file name to clipboardExpand all lines: src/Symfony/Component/Translation/Catalogue/MergeOperation.php
+8-6Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -38,19 +38,21 @@ protected function processDomain($domain)
3838

3939
foreach ($this->source->all($domain) as $id => $message) {
4040
$this->messages[$domain]['all'][$id] = $message;
41-
$this->result->add([$id => $message], $this->source->defines($id, $intlDomain) ? $intlDomain : $domain);
42-
if (null !== $keyMetadata = $this->source->getMetadata($id, $domain)) {
43-
$this->result->setMetadata($id, $keyMetadata, $domain);
41+
$d = $this->source->defines($id, $intlDomain) ? $intlDomain : $domain;
42+
$this->result->add([$id => $message], $d);
43+
if (null !== $keyMetadata = $this->source->getMetadata($id, $d)) {
44+
$this->result->setMetadata($id, $keyMetadata, $d);
4445
}
4546
}
4647

4748
foreach ($this->target->all($domain) as $id => $message) {
4849
if (!$this->source->has($id, $domain)) {
4950
$this->messages[$domain]['all'][$id] = $message;
5051
$this->messages[$domain]['new'][$id] = $message;
51-
$this->result->add([$id => $message], $this->target->defines($id, $intlDomain) ? $intlDomain : $domain);
52-
if (null !== $keyMetadata = $this->target->getMetadata($id, $domain)) {
53-
$this->result->setMetadata($id, $keyMetadata, $domain);
52+
$d = $this->target->defines($id, $intlDomain) ? $intlDomain : $domain;
53+
$this->result->add([$id => $message], $d);
54+
if (null !== $keyMetadata = $this->target->getMetadata($id, $d)) {
55+
$this->result->setMetadata($id, $keyMetadata, $d);
5456
}
5557
}
5658
}

‎src/Symfony/Component/Translation/Catalogue/TargetOperation.php

Copy file name to clipboardExpand all lines: src/Symfony/Component/Translation/Catalogue/TargetOperation.php
+8-6Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -49,9 +49,10 @@ protected function processDomain($domain)
4949
foreach ($this->source->all($domain) as $id => $message) {
5050
if ($this->target->has($id, $domain)) {
5151
$this->messages[$domain]['all'][$id] = $message;
52-
$this->result->add([$id => $message], $this->target->defines($id, $intlDomain) ? $intlDomain : $domain);
53-
if (null !== $keyMetadata = $this->source->getMetadata($id, $domain)) {
54-
$this->result->setMetadata($id, $keyMetadata, $domain);
52+
$d = $this->target->defines($id, $intlDomain) ? $intlDomain : $domain;
53+
$this->result->add([$id => $message], $d);
54+
if (null !== $keyMetadata = $this->source->getMetadata($id, $d)) {
55+
$this->result->setMetadata($id, $keyMetadata, $d);
5556
}
5657
} else {
5758
$this->messages[$domain]['obsolete'][$id] = $message;
@@ -62,9 +63,10 @@ protected function processDomain($domain)
6263
if (!$this->source->has($id, $domain)) {
6364
$this->messages[$domain]['all'][$id] = $message;
6465
$this->messages[$domain]['new'][$id] = $message;
65-
$this->result->add([$id => $message], $this->target->defines($id, $intlDomain) ? $intlDomain : $domain);
66-
if (null !== $keyMetadata = $this->target->getMetadata($id, $domain)) {
67-
$this->result->setMetadata($id, $keyMetadata, $domain);
66+
$d = $this->target->defines($id, $intlDomain) ? $intlDomain : $domain;
67+
$this->result->add([$id => $message], $d);
68+
if (null !== $keyMetadata = $this->target->getMetadata($id, $d)) {
69+
$this->result->setMetadata($id, $keyMetadata, $d);
6870
}
6971
}
7072
}

‎src/Symfony/Component/Translation/Tests/Catalogue/MergeOperationTest.php

Copy file name to clipboardExpand all lines: src/Symfony/Component/Translation/Tests/Catalogue/MergeOperationTest.php
+23Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,29 @@ public function testGetResultWithMetadata()
9090
);
9191
}
9292

93+
public function testGetResultWithMetadataFromIntlDomain()
94+
{
95+
$leftCatalogue = new MessageCatalogue('en', ['messages+intl-icu' => ['a' => 'old_a', 'b' => 'old_b']]);
96+
$leftCatalogue->setMetadata('a', 'foo', 'messages+intl-icu');
97+
$leftCatalogue->setMetadata('b', 'bar', 'messages+intl-icu');
98+
$rightCatalogue = new MessageCatalogue('en', ['messages+intl-icu' => ['b' => 'new_b', 'c' => 'new_c']]);
99+
$rightCatalogue->setMetadata('b', 'baz', 'messages+intl-icu');
100+
$rightCatalogue->setMetadata('c', 'qux', 'messages+intl-icu');
101+
102+
$mergedCatalogue = new MessageCatalogue('en', ['messages+intl-icu' => ['a' => 'old_a', 'b' => 'old_b', 'c' => 'new_c']]);
103+
$mergedCatalogue->setMetadata('a', 'foo', 'messages+intl-icu');
104+
$mergedCatalogue->setMetadata('b', 'bar', 'messages+intl-icu');
105+
$mergedCatalogue->setMetadata('c', 'qux', 'messages+intl-icu');
106+
107+
$this->assertEquals(
108+
$mergedCatalogue,
109+
$this->createOperation(
110+
$leftCatalogue,
111+
$rightCatalogue
112+
)->getResult()
113+
);
114+
}
115+
93116
protected function createOperation(MessageCatalogueInterface $source, MessageCatalogueInterface $target)
94117
{
95118
return new MergeOperation($source, $target);

‎src/Symfony/Component/Translation/Tests/Catalogue/TargetOperationTest.php

Copy file name to clipboardExpand all lines: src/Symfony/Component/Translation/Tests/Catalogue/TargetOperationTest.php
+22Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,28 @@ public function testGetResultWithMetadata()
102102
);
103103
}
104104

105+
public function testGetResultWithMetadataFromIntlDomain()
106+
{
107+
$leftCatalogue = new MessageCatalogue('en', ['messages+intl-icu' => ['a' => 'old_a', 'b' => 'old_b']]);
108+
$leftCatalogue->setMetadata('a', 'foo', 'messages+intl-icu');
109+
$leftCatalogue->setMetadata('b', 'bar', 'messages+intl-icu');
110+
$rightCatalogue = new MessageCatalogue('en', ['messages+intl-icu' => ['b' => 'new_b', 'c' => 'new_c']]);
111+
$rightCatalogue->setMetadata('b', 'baz', 'messages+intl-icu');
112+
$rightCatalogue->setMetadata('c', 'qux', 'messages+intl-icu');
113+
114+
$diffCatalogue = new MessageCatalogue('en', ['messages+intl-icu' => ['b' => 'old_b', 'c' => 'new_c']]);
115+
$diffCatalogue->setMetadata('b', 'bar', 'messages+intl-icu');
116+
$diffCatalogue->setMetadata('c', 'qux', 'messages+intl-icu');
117+
118+
$this->assertEquals(
119+
$diffCatalogue,
120+
$this->createOperation(
121+
$leftCatalogue,
122+
$rightCatalogue
123+
)->getResult()
124+
);
125+
}
126+
105127
protected function createOperation(MessageCatalogueInterface $source, MessageCatalogueInterface $target)
106128
{
107129
return new TargetOperation($source, $target);

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.