From 9e3ecd528e47aa767e39480f5884d410b6d4fad9 Mon Sep 17 00:00:00 2001 From: Toby Zerner Date: Wed, 4 Nov 2015 18:34:41 +1030 Subject: [PATCH] Parse fallback catalogues for => references too --- src/Locale/Translator.php | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/Locale/Translator.php b/src/Locale/Translator.php index 22af2565c..fe78a7085 100644 --- a/src/Locale/Translator.php +++ b/src/Locale/Translator.php @@ -34,6 +34,11 @@ class Translator extends BaseTranslator if ($parse) { $this->parseCatalogue($catalogue); + + $fallbackCatalogue = $catalogue; + while ($fallbackCatalogue = $fallbackCatalogue->getFallbackCatalogue()) { + $this->parseCatalogue($fallbackCatalogue); + } } return $catalogue; @@ -54,17 +59,17 @@ class Translator extends BaseTranslator } /** - * @param MessageCatalogueInterface $messages + * @param MessageCatalogueInterface $catalogue * @param string $id * @param string $domain * @return string */ - private function getTranslation(MessageCatalogueInterface $messages, $id, $domain) + private function getTranslation(MessageCatalogueInterface $catalogue, $id, $domain) { - $translation = $messages->get($id, $domain); + $translation = $catalogue->get($id, $domain); if (preg_match(self::REFERENCE_REGEX, $translation, $matches)) { - return $this->getTranslation($messages, $matches[1], $domain); + return $this->getTranslation($catalogue, $matches[1], $domain); } return $translation;