/**
  * Creates all additional translations created
  * through repository
  *
  * @param TranslatableAdapter $ea
  * @param object $object
  * @param boolean $inserting
  * @return void
  */
 private function processAdditionalTranslations(TranslatableAdapter $ea, $object, $inserting)
 {
     $oid = spl_object_hash($object);
     if (isset($this->additionalTranslations[$oid])) {
         $om = $ea->getObjectManager();
         $uow = $om->getUnitOfWork();
         $meta = $om->getClassMetadata(get_class($object));
         $objectId = $ea->extractIdentifier($om, $object);
         $transClass = $this->getTranslationClass($ea, $meta->name);
         foreach ($this->additionalTranslations[$oid] as $field => $translations) {
             foreach ($translations as $locale => $content) {
                 $trans = null;
                 if (!$inserting) {
                     $trans = $ea->findTranslation($objectId, $meta->name, $locale, $field, $transClass);
                 }
                 if (!$trans) {
                     $trans = new $transClass();
                     $trans->setField($field);
                     $trans->setObjectClass($meta->name);
                     $trans->setForeignKey($objectId);
                     $trans->setLocale($locale);
                 }
                 $trans->setContent($ea->getTranslationValue($object, $field, $content));
                 if ($inserting && !$objectId) {
                     $this->pendingTranslationInserts[spl_object_hash($object)][] = $trans;
                 } elseif ($trans->getId()) {
                     $om->persist($trans);
                     $transMeta = $om->getClassMetadata($transClass);
                     $uow->computeChangeSet($transMeta, $trans);
                 } else {
                     $ea->insertTranslationRecord($trans);
                 }
             }
         }
     }
 }