Example #1
0
 /**
  * @param \Generated\Shared\Transfer\KeyTranslationTransfer $keyTranslationTransfer
  *
  * @throws \Spryker\Zed\Glossary\Business\Exception\MissingKeyException
  *
  * @return bool
  */
 public function saveGlossaryKeyTranslations(KeyTranslationTransfer $keyTranslationTransfer)
 {
     if (!$keyTranslationTransfer->getGlossaryKey()) {
         throw new MissingKeyException('Glossary Key cannot be empty');
     }
     try {
         if (!$this->keyManager->hasKey($keyTranslationTransfer->getGlossaryKey())) {
             $idGlossaryKey = $this->keyManager->createKey($keyTranslationTransfer->getGlossaryKey());
         } else {
             $idGlossaryKey = $this->keyManager->getKey($keyTranslationTransfer->getGlossaryKey())->getIdGlossaryKey();
         }
         $availableLocales = $this->localeFacade->getAvailableLocales();
         foreach ($availableLocales as $localeName) {
             $localeTransfer = $this->localeFacade->getLocale($localeName);
             if (isset($keyTranslationTransfer->getLocales()[$localeName])) {
                 $translationTransfer = $this->createTranslationTransfer($localeTransfer, $idGlossaryKey, $keyTranslationTransfer->getLocales()[$localeName]);
                 $this->saveAndTouchTranslation($translationTransfer);
             }
         }
         return true;
     } catch (MissingKeyException $error) {
         $messageTransfer = new MessageTransfer();
         $messageTransfer->setValue($error->getMessage());
         $this->messengerFacade->addErrorMessage($messageTransfer);
         return false;
     }
 }