From 9e3ecd528e47aa767e39480f5884d410b6d4fad9 Mon Sep 17 00:00:00 2001
From: Toby Zerner <toby.zerner@gmail.com>
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;