Parse fallback catalogues for => references too

This commit is contained in:
Toby Zerner
2015-11-04 18:34:41 +10:30
parent 3518fb2299
commit 9e3ecd528e

View File

@ -34,6 +34,11 @@ class Translator extends BaseTranslator
if ($parse) { if ($parse) {
$this->parseCatalogue($catalogue); $this->parseCatalogue($catalogue);
$fallbackCatalogue = $catalogue;
while ($fallbackCatalogue = $fallbackCatalogue->getFallbackCatalogue()) {
$this->parseCatalogue($fallbackCatalogue);
}
} }
return $catalogue; return $catalogue;
@ -54,17 +59,17 @@ class Translator extends BaseTranslator
} }
/** /**
* @param MessageCatalogueInterface $messages * @param MessageCatalogueInterface $catalogue
* @param string $id * @param string $id
* @param string $domain * @param string $domain
* @return string * @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)) { if (preg_match(self::REFERENCE_REGEX, $translation, $matches)) {
return $this->getTranslation($messages, $matches[1], $domain); return $this->getTranslation($catalogue, $matches[1], $domain);
} }
return $translation; return $translation;