diff --git a/src/Symfony/Component/Translation/LoggingTranslator.php b/src/Symfony/Component/Translation/LoggingTranslator.php index 8373ad1b21..4ff3531228 100644 --- a/src/Symfony/Component/Translation/LoggingTranslator.php +++ b/src/Symfony/Component/Translation/LoggingTranslator.php @@ -109,10 +109,6 @@ class LoggingTranslator implements TranslatorInterface, TranslatorBagInterface */ 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 752c5eff45..81ed905296 100644 --- a/src/Symfony/Component/Translation/Translator.php +++ b/src/Symfony/Component/Translation/Translator.php @@ -203,21 +203,11 @@ class Translator implements TranslatorInterface, TranslatorBagInterface */ 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); } /** @@ -227,23 +217,13 @@ class Translator implements TranslatorInterface, TranslatorBagInterface */ 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; @@ -263,6 +243,8 @@ class Translator implements TranslatorInterface, TranslatorBagInterface { if (null === $locale) { $locale = $this->getLocale(); + } else { + $this->assertValidLocale($locale); } if (!isset($this->catalogues[$locale])) { @@ -291,16 +273,8 @@ class Translator implements TranslatorInterface, TranslatorBagInterface */ 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 e0312d9135..6f650b5ee0 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);