/**
  * Gets array locale => translation
  *
  * @return AbstractPersonalTranslation[]
  */
 public function prepareTranslationsArray()
 {
     $result = array();
     if ($this->object) {
         array_map(function (AbstractPersonalTranslation $translation) use(&$result) {
             $result[$translation->getLocale()] = $translation;
         }, $this->getFieldTranslations());
         $class = $this->object->getTranslationClass();
         foreach ($this->cultures as $culture) {
             if (!array_key_exists($culture, $result)) {
                 /** @var AbstractPersonalTranslation $translation */
                 $translation = new $class($culture, $this->field);
                 $this->object->addTranslation($translation);
                 $result[$culture] = $translation;
             }
         }
     }
     return $result;
 }
 /**
  * Updates base fields using translations
  *
  * @param TranslatedPersonalEntityInterface $entity
  */
 protected function updateFields(TranslatedPersonalEntityInterface $entity)
 {
     $entity->setTranslatableLocale($this->translationsHelper->getDefaultLocale());
     foreach ($entity->getTranslations() as $translation) {
         /** @var AbstractPersonalTranslation $translation */
         if ($translation->getLocale() == $entity->getLocale()) {
             $method = 'set' . ucfirst($translation->getField());
             if (method_exists($entity, $method)) {
                 call_user_func(array($entity, $method), $translation->getContent());
             }
         }
     }
 }