public function getCatalogue($locale = null)
{
if (null === $locale) {
$locale = $this->getLocale();
} else {
$this->assertValidLocale($locale);
}
$parse = !isset($this->catalogues[$locale]);
$catalogue = parent::getCatalogue($locale);
if ($parse) {
$this->parseCatalogue($catalogue);
$fallbackCatalogue = $catalogue;
while ($fallbackCatalogue = $fallbackCatalogue->getFallbackCatalogue()) {
$this->parseCatalogue($fallbackCatalogue);
}
}
return $catalogue;
}