diff --git a/src/Symfony/Component/Translation/Translator.php b/src/Symfony/Component/Translation/Translator.php index b4c3f69187da5..b11edb7d6a240 100644 --- a/src/Symfony/Component/Translation/Translator.php +++ b/src/Symfony/Component/Translation/Translator.php @@ -134,15 +134,15 @@ public function transChoice($id, $number, array $parameters = array(), $domain = protected function loadCatalogue($locale) { $this->catalogues[$locale] = new MessageCatalogue($locale); - if (!isset($this->resources[$locale])) { - return; - } - foreach ($this->resources[$locale] as $resource) { - if (!isset($this->loaders[$resource[0]])) { - throw new \RuntimeException(sprintf('The "%s" translation loader is not registered.', $resource[0])); + if (isset($this->resources[$locale])) { + + foreach ($this->resources[$locale] as $resource) { + if (!isset($this->loaders[$resource[0]])) { + throw new \RuntimeException(sprintf('The "%s" translation loader is not registered.', $resource[0])); + } + $this->catalogues[$locale]->addCatalogue($this->loaders[$resource[0]]->load($resource[1], $locale, $resource[2])); } - $this->catalogues[$locale]->addCatalogue($this->loaders[$resource[0]]->load($resource[1], $locale, $resource[2])); } $this->optimizeCatalogue($locale); diff --git a/tests/Symfony/Tests/Component/Translation/TranslatorTest.php b/tests/Symfony/Tests/Component/Translation/TranslatorTest.php index c45f1df90e671..4cddae8a181b4 100644 --- a/tests/Symfony/Tests/Component/Translation/TranslatorTest.php +++ b/tests/Symfony/Tests/Component/Translation/TranslatorTest.php @@ -43,11 +43,13 @@ public function testSetFallbackLocale() public function testTransWithFallbackLocale() { - $translator = new Translator('en_US', new MessageSelector()); + $translator = new Translator('fr_FR', new MessageSelector()); $translator->addLoader('array', new ArrayLoader()); $translator->addResource('array', array('foo' => 'foofoo'), 'en_US'); $translator->addResource('array', array('bar' => 'foobar'), 'en'); + $translator->setFallbackLocale('en'); + $this->assertEquals('foobar', $translator->trans('bar')); }