public function populate(int $deep = 0)
    {
        $nb_catalog = $this->getCatalog();
        $this->clear();
        $this->merge(CNabuCatalogItem::getItemsForCatalog($nb_catalog, $deep));
        $translations = CNabuCatalogItem::getItemTranslationsForCatalog($nb_catalog, $deep);
        $translations->iterate(
            function ($key, $translation)
            {
                $item = $this->getItem($translation->getCatalogItemId());
                if ($item instanceof INabuTranslated) {
                    $item->setTranslation($translation);
                }
                return true;
            }
        );
    }