Esempio n. 1
0
 /**
  * @param array $translations
  *
  * @return array
  */
 protected function installKeysAndTranslations(array $translations)
 {
     Propel::getConnection()->beginTransaction();
     $results = [];
     foreach ($translations as $keyName => $data) {
         $results[$keyName]['created'] = false;
         if (!$this->keyManager->hasKey($keyName)) {
             $this->keyManager->createKey($keyName);
             $results[$keyName]['created'] = true;
         }
         foreach ($data['translations'] as $localeName => $text) {
             $locale = new LocaleTransfer();
             $locale->setLocaleName($localeName);
             $results[$keyName]['translation'][$localeName]['text'] = $text;
             $results[$keyName]['translation'][$localeName]['created'] = false;
             $results[$keyName]['translation'][$localeName]['updated'] = false;
             if (!$this->translationManager->hasTranslation($keyName, $locale)) {
                 $this->translationManager->createAndTouchTranslation($keyName, $locale, $text, true);
                 $results[$keyName]['translation'][$localeName]['created'] = true;
             } elseif ($this->translationManager->getTranslationByKeyName($keyName, $locale)->getValue() !== $text) {
                 $this->translationManager->updateAndTouchTranslation($keyName, $locale, $text, true);
                 $results[$keyName]['translation'][$localeName]['updated'] = true;
             }
         }
     }
     Propel::getConnection()->commit();
     return $results;
 }
Esempio n. 2
0
 /**
  * @param string $keyName
  * @param string $value
  * @param bool $isActive
  *
  * @return \Orm\Zed\Glossary\Persistence\SpyGlossaryTranslation
  */
 public function createTranslationForCurrentLocale($keyName, $value, $isActive = true)
 {
     $idKey = $this->keyManager->getKey($keyName)->getPrimaryKey();
     $idLocale = $this->localeFacade->getCurrentLocale()->getIdLocale();
     return $this->createTranslationByIds($idKey, $idLocale, $value, $isActive);
 }