Skip to content

Commit b037768

Browse files
committed
Add intl-icu fallback for MessageCatalogue metadata, matching behavior for messages.
1 parent 12b8bc8 commit b037768

File tree

2 files changed

+28
-0
lines changed

2 files changed

+28
-0
lines changed

src/Symfony/Component/Translation/MessageCatalogue.php

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -217,6 +217,16 @@ public function getMetadata(string $key = '', string $domain = 'messages'): mixe
217217
return $this->metadata;
218218
}
219219

220+
if (isset($this->metadata[$domain.self::INTL_DOMAIN_SUFFIX])) {
221+
if ('' == $key) {
222+
return $this->metadata[$domain.self::INTL_DOMAIN_SUFFIX];
223+
}
224+
225+
if (isset($this->metadata[$domain.self::INTL_DOMAIN_SUFFIX][$key])) {
226+
return $this->metadata[$domain.self::INTL_DOMAIN_SUFFIX][$key];
227+
}
228+
}
229+
220230
if (isset($this->metadata[$domain])) {
221231
if ('' == $key) {
222232
return $this->metadata[$domain];
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
<?php
2+
3+
namespace Symfony\Component\Translation\Tests\Catalogue;
4+
5+
use PHPUnit\Framework\TestCase;
6+
use Symfony\Component\Translation\MessageCatalogue;
7+
8+
class MetadataTest extends TestCase
9+
{
10+
public function testIcuMetadataKept()
11+
{
12+
$mc = new MessageCatalogue('en', ['messages' => ['a' => 'new_a']]);
13+
$metadata = ['metadata' => 'value'];
14+
$mc->setMetadata('a', $metadata, 'messages+intl-icu');
15+
$this->assertEquals($metadata, $mc->getMetadata('a', 'messages'));
16+
$this->assertEquals($metadata, $mc->getMetadata('a', 'messages+intl-icu'));
17+
}
18+
}

0 commit comments

Comments
 (0)