Skip to content

Commit eb4eb75

Browse files
committed
Merge branch '2.3' into 2.7
* 2.3: fix container cache key generation [Translation] Add resources from fallback locale [DependencyInjection] enforce tags to have a name [YAML] Refine the return value of Yaml::parse()
2 parents f87f664 + 9da5700 commit eb4eb75

File tree

2 files changed

+27
-0
lines changed

2 files changed

+27
-0
lines changed

Tests/TranslatorTest.php

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -273,6 +273,30 @@ public function testWhenAResourceHasNoRegisteredLoader()
273273
$translator->trans('foo');
274274
}
275275

276+
public function testFallbackCatalogueResources()
277+
{
278+
$translator = new Translator('en_GB', new MessageSelector());
279+
$translator->addLoader('yml', new \Symfony\Component\Translation\Loader\YamlFileLoader());
280+
$translator->addResource('yml', __DIR__.'/fixtures/empty.yml', 'en_GB');
281+
$translator->addResource('yml', __DIR__.'/fixtures/resources.yml', 'en');
282+
283+
// force catalogue loading
284+
$this->assertEquals('bar', $translator->trans('foo', array()));
285+
286+
$cataloguesProperty = new \ReflectionProperty($translator, 'catalogues');
287+
$cataloguesProperty->setAccessible(true);
288+
$catalogues = $cataloguesProperty->getValue($translator);
289+
290+
$resources = $catalogues['en']->getResources();
291+
$this->assertCount(1, $resources);
292+
$this->assertContains( __DIR__.'/fixtures/resources.yml', $resources);
293+
294+
$resources = $catalogues['en_GB']->getResources();
295+
$this->assertCount(2, $resources);
296+
$this->assertContains( __DIR__.'/fixtures/empty.yml', $resources);
297+
$this->assertContains( __DIR__.'/fixtures/resources.yml', $resources);
298+
}
299+
276300
/**
277301
* @dataProvider getTransTests
278302
*/

Translator.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -424,6 +424,9 @@ private function loadFallbackCatalogues($locale)
424424
}
425425

426426
$fallbackCatalogue = new MessageCatalogue($fallback, $this->catalogues[$fallback]->all());
427+
foreach ($this->catalogues[$fallback]->getResources() as $resource) {
428+
$fallbackCatalogue->addResource($resource);
429+
}
427430
$current->addFallbackCatalogue($fallbackCatalogue);
428431
$current = $fallbackCatalogue;
429432
}

0 commit comments

Comments
 (0)