diff --git a/src/Symfony/Component/Translation/DataCollectorTranslator.php b/src/Symfony/Component/Translation/DataCollectorTranslator.php index a94f9adabea6a..d1d5f4697bba3 100644 --- a/src/Symfony/Component/Translation/DataCollectorTranslator.php +++ b/src/Symfony/Component/Translation/DataCollectorTranslator.php @@ -116,16 +116,13 @@ public function getCollectedMessages() */ private function collectMessage($locale, $domain, $id, $translation) { - if (null === $locale) { - $locale = $this->getLocale(); - } - if (null === $domain) { $domain = 'messages'; } $id = (string) $id; $catalogue = $this->translator->getCatalogue($locale); + $locale = $catalogue->getLocale(); if ($catalogue->defines($id, $domain)) { $state = self::MESSAGE_DEFINED; } elseif ($catalogue->has($id, $domain)) { diff --git a/src/Symfony/Component/Translation/LoggingTranslator.php b/src/Symfony/Component/Translation/LoggingTranslator.php index b46099c68f98a..8f5aec30616f5 100644 --- a/src/Symfony/Component/Translation/LoggingTranslator.php +++ b/src/Symfony/Component/Translation/LoggingTranslator.php @@ -109,10 +109,6 @@ public function __call($method, $args) */ private function log($id, $domain, $locale) { - if (null === $locale) { - $locale = $this->getLocale(); - } - if (null === $domain) { $domain = 'messages'; } diff --git a/src/Symfony/Component/Translation/Translator.php b/src/Symfony/Component/Translation/Translator.php index d62bfb68739cd..bb4134a64d030 100644 --- a/src/Symfony/Component/Translation/Translator.php +++ b/src/Symfony/Component/Translation/Translator.php @@ -222,21 +222,11 @@ public function getFallbackLocales() */ public function trans($id, array $parameters = array(), $domain = null, $locale = null) { - if (null === $locale) { - $locale = $this->getLocale(); - } else { - $this->assertValidLocale($locale); - } - if (null === $domain) { $domain = 'messages'; } - if (!isset($this->catalogues[$locale])) { - $this->loadCatalogue($locale); - } - - return strtr($this->catalogues[$locale]->get((string) $id, $domain), $parameters); + return strtr($this->getCatalogue($locale)->get((string) $id, $domain), $parameters); } /** @@ -246,23 +236,13 @@ public function trans($id, array $parameters = array(), $domain = null, $locale */ public function transChoice($id, $number, array $parameters = array(), $domain = null, $locale = null) { - if (null === $locale) { - $locale = $this->getLocale(); - } else { - $this->assertValidLocale($locale); - } - if (null === $domain) { $domain = 'messages'; } - if (!isset($this->catalogues[$locale])) { - $this->loadCatalogue($locale); - } - $id = (string) $id; - - $catalogue = $this->catalogues[$locale]; + $catalogue = $this->getCatalogue($locale); + $locale = $catalogue->getLocale(); while (!$catalogue->defines($id, $domain)) { if ($cat = $catalogue->getFallbackCatalogue()) { $catalogue = $cat; @@ -282,6 +262,8 @@ public function getCatalogue($locale = null) { if (null === $locale) { $locale = $this->getLocale(); + } else { + $this->assertValidLocale($locale); } if (!isset($this->catalogues[$locale])) { @@ -310,16 +292,8 @@ protected function getLoaders() */ public function getMessages($locale = null) { - if (null === $locale) { - $locale = $this->getLocale(); - } - - if (!isset($this->catalogues[$locale])) { - $this->loadCatalogue($locale); - } - $catalogues = array(); - $catalogues[] = $catalogue = $this->catalogues[$locale]; + $catalogues[] = $catalogue = $this->getCatalogue($locale); while ($catalogue = $catalogue->getFallbackCatalogue()) { $catalogues[] = $catalogue; } diff --git a/src/Symfony/Component/Translation/TranslatorBagInterface.php b/src/Symfony/Component/Translation/TranslatorBagInterface.php index e0312d9135576..6f650b5ee0f88 100644 --- a/src/Symfony/Component/Translation/TranslatorBagInterface.php +++ b/src/Symfony/Component/Translation/TranslatorBagInterface.php @@ -12,7 +12,7 @@ namespace Symfony\Component\Translation; /** - * TranslatorBagInterface + * TranslatorBagInterface. * * @author Abdellatif Ait boudad */ @@ -23,6 +23,8 @@ interface TranslatorBagInterface * * @param string|null $locale The locale or null to use the default * + * @throws \InvalidArgumentException If the locale contains invalid characters + * * @return MessageCatalogueInterface */ public function getCatalogue($locale = null);