/** * Test getter/setter for translations property */ public function testTranslations() { $this->assertCount(0, $this->attribute->getTranslations()); // Change value and assert new $newTranslation = new AttributeTranslation(); $this->assertEntity($this->attribute->addTranslation($newTranslation)); $this->assertCount(1, $this->attribute->getTranslations()); $this->assertInstanceOf('Pim\\Bundle\\CatalogBundle\\Entity\\AttributeTranslation', $this->attribute->getTranslations()->first()); $this->attribute->addTranslation($newTranslation); $this->assertCount(1, $this->attribute->getTranslations()); $this->assertEntity($this->attribute->removeTranslation($newTranslation)); $this->assertCount(0, $this->attribute->getTranslations()); }
/** * Get attribute translation for given locale code * @param AbstractAttribute $attribute * @param string $localeCode * @param string $defaultLocale * * @return mixed */ protected function getAttributeTranslation(AbstractAttribute $attribute, $localeCode, $defaultLocale) { foreach ($attribute->getTranslations() as $translation) { if (strtolower($translation->getLocale()) == strtolower($localeCode) && $translation->getLabel() !== null) { return $translation->getLabel(); } } if ($localeCode === $defaultLocale) { return $attribute->getCode(); } else { return $this->getAttributeTranslation($attribute, $defaultLocale, $defaultLocale); } }